Compare commits

...

5 Commits

Author SHA1 Message Date
LinuxServer-CI
ff88d2af74 Bot Updating Package Versions 2026-05-01 19:40:34 +00:00
LinuxServer-CI
b015619eb6 Bot Updating Package Versions 2026-04-17 19:23:44 +00:00
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
2 changed files with 94 additions and 96 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

@@ -25,7 +25,7 @@ ca-certificates-bundle 20250911-r0 apk
carbonphp/carbon-doctrine-types 3.2.0 php-composer carbonphp/carbon-doctrine-types 3.2.0 php-composer
catatonit 0.2.1-r0 apk catatonit 0.2.1-r0 apk
clue/stream-filter v1.7.0 php-composer clue/stream-filter v1.7.0 php-composer
composer 2.9.5 binary composer 2.9.7 binary
composer/class-map-generator 1.6.1 php-composer composer/class-map-generator 1.6.1 php-composer
composer/pcre 3.3.2 php-composer composer/pcre 3.3.2 php-composer
coreutils 9.7-r1 apk coreutils 9.7-r1 apk
@@ -76,10 +76,10 @@ libapk2 2.14.9-r3 apk
libattr 2.5.2-r2 apk libattr 2.5.2-r2 apk
libbsd 0.12.2-r0 apk libbsd 0.12.2-r0 apk
libbz2 1.0.8-r6 apk libbz2 1.0.8-r6 apk
libcrypto3 3.5.5-r0 apk libcrypto3 3.5.6-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
@@ -88,7 +88,7 @@ libncursesw 6.5_p20250503-r0 apk
libpq 17.9-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.6-r0 apk
libstdc++ 14.2.0-r6 apk libstdc++ 14.2.0-r6 apk
libunistring 1.3-r0 apk libunistring 1.3-r0 apk
libuuid 2.41-r9 apk libuuid 2.41-r9 apk
@@ -99,8 +99,8 @@ logrotate 3.21.0-r1 apk
mockery/mockery 1.6.12 php-composer mockery/mockery 1.6.12 php-composer
monolog/monolog 3.9.0 php-composer monolog/monolog 3.9.0 php-composer
mtdowling/jmespath.php 2.8.0 php-composer mtdowling/jmespath.php 2.8.0 php-composer
musl 1.2.5-r10 apk musl 1.2.5-r12 apk
musl-utils 1.2.5-r10 apk musl-utils 1.2.5-r12 apk
myclabs/deep-copy 1.13.3 php-composer myclabs/deep-copy 1.13.3 php-composer
nano 8.4-r0 apk nano 8.4-r0 apk
ncurses-terminfo-base 6.5_p20250503-r0 apk ncurses-terminfo-base 6.5_p20250503-r0 apk
@@ -109,12 +109,12 @@ 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
oniguruma 6.9.10-r0 apk oniguruma 6.9.10-r0 apk
openssl 3.5.5-r0 apk openssl 3.5.6-r0 apk
pcre2 10.46-r0 apk pcre2 10.46-r0 apk
phar-io/manifest 2.0.4 php-composer phar-io/manifest 2.0.4 php-composer
phar-io/version 3.2.1 php-composer phar-io/version 3.2.1 php-composer
@@ -240,6 +240,6 @@ 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
webmozart/assert 1.11.0 php-composer webmozart/assert 1.11.0 php-composer
xz-libs 5.8.1-r0 apk xz-libs 5.8.3-r0 apk
zlib 1.3.1-r2 apk zlib 1.3.1-r2 apk
zstd-libs 1.5.7-r0 apk zstd-libs 1.5.7-r0 apk