Compare commits

..

5 Commits

Author SHA1 Message Date
LinuxServer-CI
0de9557194 Bot Updating Templated Files 2026-04-10 19:12:52 +00:00
LinuxServer-CI
99167880f4 Bot Updating Package Versions 2026-03-27 19:13:52 +00:00
LinuxServer-CI
194148f8bd Bot Updating Package Versions 2026-03-20 19:08:46 +00:00
LinuxServer-CI
9dfb57d19a Bot Updating Package Versions 2026-03-13 19:03:03 +00:00
LinuxServer-CI
3d23197670 Bot Updating Package Versions 2026-02-20 19:07:58 +00:00
2 changed files with 89 additions and 91 deletions

108
Jenkinsfile vendored
View File

@@ -78,6 +78,7 @@ pipeline {
''' '''
script{ script{
env.EXIT_STATUS = '' env.EXIT_STATUS = ''
env.CI_TEST_ATTEMPTED = ''
env.LS_RELEASE = sh( env.LS_RELEASE = sh(
script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:development 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''', script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:development 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
returnStdout: true).trim() returnStdout: true).trim()
@@ -881,6 +882,7 @@ pipeline {
script{ script{
env.CI_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/index.html' env.CI_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/index.html'
env.CI_JSON_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/report.json' env.CI_JSON_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/report.json'
env.CI_TEST_ATTEMPTED = 'true'
} }
sh '''#! /bin/bash sh '''#! /bin/bash
set -e set -e
@@ -1083,13 +1085,58 @@ EOF
) ''' ) '''
} }
} }
// If this is a Pull request send the CI link as a comment on it
stage('Pull Request Comment') {
when {
not {environment name: 'CHANGE_ID', value: ''}
environment name: 'EXIT_STATUS', value: ''
} }
steps { /* ######################
Comment on PR and Send status to Discord
###################### */
post {
always {
script {
env.JOB_DATE = sh(
script: '''date '+%Y-%m-%dT%H:%M:%S%:z' ''',
returnStdout: true).trim()
if (env.EXIT_STATUS == "ABORTED"){
sh 'echo "build aborted"'
}else{
if (currentBuild.currentResult == "SUCCESS"){
if (env.GITHUBIMAGE =~ /lspipepr/){
env.JOB_WEBHOOK_STATUS='Success'
env.JOB_WEBHOOK_COLOUR=3957028
env.JOB_WEBHOOK_FOOTER='PR Build'
}else if (env.GITHUBIMAGE =~ /lsiodev/){
env.JOB_WEBHOOK_STATUS='Success'
env.JOB_WEBHOOK_COLOUR=3957028
env.JOB_WEBHOOK_FOOTER='Dev Build'
}else{
env.JOB_WEBHOOK_STATUS='Success'
env.JOB_WEBHOOK_COLOUR=1681177
env.JOB_WEBHOOK_FOOTER='Live Build'
}
}else{
if (env.GITHUBIMAGE =~ /lspipepr/){
env.JOB_WEBHOOK_STATUS='Failure'
env.JOB_WEBHOOK_COLOUR=12669523
env.JOB_WEBHOOK_FOOTER='PR Build'
}else if (env.GITHUBIMAGE =~ /lsiodev/){
env.JOB_WEBHOOK_STATUS='Failure'
env.JOB_WEBHOOK_COLOUR=12669523
env.JOB_WEBHOOK_FOOTER='Dev Build'
}else{
env.JOB_WEBHOOK_STATUS='Failure'
env.JOB_WEBHOOK_COLOUR=16711680
env.JOB_WEBHOOK_FOOTER='Live Build'
}
}
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"'color'": '${JOB_WEBHOOK_COLOUR}',\
"footer": {"text" : "'"${JOB_WEBHOOK_FOOTER}"'"},\
"timestamp": "'${JOB_DATE}'",\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** '${JOB_WEBHOOK_STATUS}'\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
}
}
script {
if (env.GITHUBIMAGE =~ /lspipepr/){
if (env.CI_TEST_ATTEMPTED == "true"){
sh '''#! /bin/bash sh '''#! /bin/bash
# Function to retrieve JSON data from URL # Function to retrieve JSON data from URL
get_json() { get_json() {
@@ -1158,15 +1205,9 @@ EOF
-d "{\\"body\\": \\"I am a bot, here is the pushed image/manifest for this PR: \\n\\n\\`${GITHUBIMAGE}:${META_TAG}\\`\\"}" -d "{\\"body\\": \\"I am a bot, here is the pushed image/manifest for this PR: \\n\\n\\`${GITHUBIMAGE}:${META_TAG}\\`\\"}"
fi fi
''' '''
} }
} }
} }
/* ######################
Send status to Discord
###################### */
post {
always {
sh '''#!/bin/bash sh '''#!/bin/bash
rm -rf /config/.ssh/id_sign rm -rf /config/.ssh/id_sign
rm -rf /config/.ssh/id_sign.pub rm -rf /config/.ssh/id_sign.pub
@@ -1174,49 +1215,6 @@ EOF
git config --global --unset user.signingkey git config --global --unset user.signingkey
git config --global --unset commit.gpgsign git config --global --unset commit.gpgsign
''' '''
script{
env.JOB_DATE = sh(
script: '''date '+%Y-%m-%dT%H:%M:%S%:z' ''',
returnStdout: true).trim()
if (env.EXIT_STATUS == "ABORTED"){
sh 'echo "build aborted"'
}else{
if (currentBuild.currentResult == "SUCCESS"){
if (env.GITHUBIMAGE =~ /lspipepr/){
env.JOB_WEBHOOK_STATUS='Success'
env.JOB_WEBHOOK_COLOUR=3957028
env.JOB_WEBHOOK_FOOTER='PR Build'
}else if (env.GITHUBIMAGE =~ /lsiodev/){
env.JOB_WEBHOOK_STATUS='Success'
env.JOB_WEBHOOK_COLOUR=3957028
env.JOB_WEBHOOK_FOOTER='Dev Build'
}else{
env.JOB_WEBHOOK_STATUS='Success'
env.JOB_WEBHOOK_COLOUR=1681177
env.JOB_WEBHOOK_FOOTER='Live Build'
}
}else{
if (env.GITHUBIMAGE =~ /lspipepr/){
env.JOB_WEBHOOK_STATUS='Failure'
env.JOB_WEBHOOK_COLOUR=12669523
env.JOB_WEBHOOK_FOOTER='PR Build'
}else if (env.GITHUBIMAGE =~ /lsiodev/){
env.JOB_WEBHOOK_STATUS='Failure'
env.JOB_WEBHOOK_COLOUR=12669523
env.JOB_WEBHOOK_FOOTER='Dev Build'
}else{
env.JOB_WEBHOOK_STATUS='Failure'
env.JOB_WEBHOOK_COLOUR=16711680
env.JOB_WEBHOOK_FOOTER='Live Build'
}
}
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"'color'": '${JOB_WEBHOOK_COLOUR}',\
"footer": {"text" : "'"${JOB_WEBHOOK_FOOTER}"'"},\
"timestamp": "'${JOB_DATE}'",\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** '${JOB_WEBHOOK_STATUS}'\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
}
}
} }
cleanup { cleanup {
sh '''#! /bin/bash sh '''#! /bin/bash

View File

@@ -79,13 +79,13 @@ libbz2 1.0.8-r6 apk
libcrypto3 3.5.5-r0 apk libcrypto3 3.5.5-r0 apk
libcurl 8.14.1-r2 apk libcurl 8.14.1-r2 apk
libedit 20250104.3.1-r1 apk libedit 20250104.3.1-r1 apk
libexpat 2.7.4-r0 apk libexpat 2.7.5-r0 apk
libgcc 14.2.0-r6 apk libgcc 14.2.0-r6 apk
libidn2 2.3.7-r0 apk libidn2 2.3.7-r0 apk
libintl 0.24.1-r0 apk libintl 0.24.1-r0 apk
libmd 1.1.0-r0 apk libmd 1.1.0-r0 apk
libncursesw 6.5_p20250503-r0 apk libncursesw 6.5_p20250503-r0 apk
libpq 17.7-r0 apk libpq 17.9-r0 apk
libproc2 4.0.4-r3 apk libproc2 4.0.4-r3 apk
libpsl 0.21.5-r3 apk libpsl 0.21.5-r3 apk
libssl3 3.5.5-r0 apk libssl3 3.5.5-r0 apk
@@ -109,7 +109,7 @@ netcat-openbsd 1.229.1-r0 apk
nette/schema v1.3.2 php-composer nette/schema v1.3.2 php-composer
nette/utils v4.0.7 php-composer nette/utils v4.0.7 php-composer
nghttp2-libs 1.65.0-r0 apk nghttp2-libs 1.65.0-r0 apk
nginx 1.28.2-r0 apk nginx 1.28.3-r0 apk
nikic/php-parser v5.5.0 php-composer nikic/php-parser v5.5.0 php-composer
nunomaduro/collision v8.5.0 php-composer nunomaduro/collision v8.5.0 php-composer
nunomaduro/termwind v2.3.1 php-composer nunomaduro/termwind v2.3.1 php-composer
@@ -235,7 +235,7 @@ symfony/var-exporter v7.3.0 php-composer
symfony/yaml v7.3.1 php-composer symfony/yaml v7.3.1 php-composer
theseer/tokenizer 1.2.3 php-composer theseer/tokenizer 1.2.3 php-composer
tijsverkoyen/css-to-inline-styles v2.3.0 php-composer tijsverkoyen/css-to-inline-styles v2.3.0 php-composer
tzdata 2025c-r0 apk tzdata 2026a-r0 apk
utmps-libs 0.1.3.1-r0 apk utmps-libs 0.1.3.1-r0 apk
vlucas/phpdotenv v5.6.2 php-composer vlucas/phpdotenv v5.6.2 php-composer
voku/portable-ascii 2.0.3 php-composer voku/portable-ascii 2.0.3 php-composer