@@ -55,7 +55,7 @@ pipeline {
5555 env. CODE_URL = ' https://github.com/' + env. LS_USER + ' /' + env. LS_REPO + ' /commit/' + env. GIT_COMMIT
5656 env. DOCKERHUB_LINK = ' https://hub.docker.com/r/' + env. DOCKERHUB_IMAGE + ' /tags/'
5757 env. PULL_REQUEST = env. CHANGE_ID
58- env. TEMPLATED_FILES = ' Jenkinsfile README.md LICENSE ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE. md ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/greetings.yml ./.github/workflows/stale.yml'
58+ env. TEMPLATED_FILES = ' Jenkinsfile README.md LICENSE ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug. md ./.github/ISSUE_TEMPLATE/issue.feature.md ./.github/ PULL_REQUEST_TEMPLATE.md ./.github/workflows/greetings.yml ./.github/workflows/stale.yml ./.github/workflows/package_trigger.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/external_trigger.yml ./.github/workflows/external_trigger_scheduler .yml'
5959 }
6060 script{
6161 env. LS_RELEASE_NUMBER = sh(
@@ -103,7 +103,7 @@ pipeline {
103103 steps{
104104 script{
105105 env. EXT_RELEASE = sh(
106- script : ''' curl -sX GET " https://api.github.com/repos/docker/compose/releases/latest" | jq -r '.tag_name' | awk '$0="alpine-"$0 ' ''' ,
106+ script : ''' curl -sX GET https://api.github.com/repos/docker/compose/releases/latest | jq -r '.tag_name' ''' ,
107107 returnStdout : true ). trim()
108108 env. RELEASE_LINK = ' custom_command'
109109 }
@@ -131,12 +131,13 @@ pipeline {
131131 env. GITHUBIMAGE = ' ghcr.io/' + env. LS_USER + ' /' + env. CONTAINER_NAME
132132 env. GITLABIMAGE = ' registry.gitlab.com/linuxserver.io/' + env. LS_REPO + ' /' + env. CONTAINER_NAME
133133 if (env. MULTIARCH == ' true' ) {
134- env. CI_TAGS = ' amd64-' + env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER + ' |arm32v7-' + env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER + ' |arm64v8-' + env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER
134+ env. CI_TAGS = ' amd64-alpine- ' + env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER + ' |arm32v7-alpine- ' + env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER + ' |arm64v8-alpine -' + env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER
135135 } else {
136- env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER
136+ env. CI_TAGS = ' alpine- ' + env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER
137137 }
138- env. META_TAG = env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER
139- env. EXT_RELEASE_TAG = ' version-' + env. EXT_RELEASE_CLEAN
138+ env. VERSION_TAG = env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER
139+ env. META_TAG = ' alpine-' + env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER
140+ env. EXT_RELEASE_TAG = ' alpine-version-' + env. EXT_RELEASE_CLEAN
140141 }
141142 }
142143 }
@@ -152,12 +153,13 @@ pipeline {
152153 env. GITHUBIMAGE = ' ghcr.io/' + env. LS_USER + ' /lsiodev-' + env. CONTAINER_NAME
153154 env. GITLABIMAGE = ' registry.gitlab.com/linuxserver.io/' + env. LS_REPO + ' /lsiodev-' + env. CONTAINER_NAME
154155 if (env. MULTIARCH == ' true' ) {
155- env. CI_TAGS = ' amd64-' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA + ' |arm32v7-' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA + ' |arm64v8-' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA
156+ env. CI_TAGS = ' amd64-alpine- ' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA + ' |arm32v7-alpine- ' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA + ' |arm64v8-alpine -' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA
156157 } else {
157- env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA
158+ env. CI_TAGS = ' alpine- ' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA
158159 }
159- env. META_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA
160- env. EXT_RELEASE_TAG = ' version-' + env. EXT_RELEASE_CLEAN
160+ env. VERSION_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA
161+ env. META_TAG = ' alpine-' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA
162+ env. EXT_RELEASE_TAG = ' alpine-version-' + env. EXT_RELEASE_CLEAN
161163 env. DOCKERHUB_LINK = ' https://hub.docker.com/r/' + env. DEV_DOCKERHUB_IMAGE + ' /tags/'
162164 }
163165 }
@@ -173,12 +175,13 @@ pipeline {
173175 env. GITHUBIMAGE = ' ghcr.io/' + env. LS_USER + ' /lspipepr-' + env. CONTAINER_NAME
174176 env. GITLABIMAGE = ' registry.gitlab.com/linuxserver.io/' + env. LS_REPO + ' /lspipepr-' + env. CONTAINER_NAME
175177 if (env. MULTIARCH == ' true' ) {
176- env. CI_TAGS = ' amd64-' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST + ' |arm32v7-' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST + ' |arm64v8-' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
178+ env. CI_TAGS = ' amd64-alpine- ' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST + ' |arm32v7-alpine- ' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST + ' |arm64v8-alpine -' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
177179 } else {
178- env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
180+ env. CI_TAGS = ' alpine- ' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
179181 }
180- env. META_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
181- env. EXT_RELEASE_TAG = ' version-' + env. EXT_RELEASE_CLEAN
182+ env. VERSION_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
183+ env. META_TAG = ' alpine-' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
184+ env. EXT_RELEASE_TAG = ' alpine-version-' + env. EXT_RELEASE_CLEAN
182185 env. CODE_URL = ' https://github.com/' + env. LS_USER + ' /' + env. LS_REPO + ' /pull/' + env. PULL_REQUEST
183186 env. DOCKERHUB_LINK = ' https://hub.docker.com/r/' + env. PR_DOCKERHUB_IMAGE + ' /tags/'
184187 }
@@ -238,9 +241,12 @@ pipeline {
238241 git checkout -f alpine
239242 cd ${TEMPDIR}/docker-${CONTAINER_NAME}
240243 mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
241- cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/
244+ mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
245+ rm -f ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE.md
246+ cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || :
242247 cd ${TEMPDIR}/repo/${LS_REPO}/
243248 git add ${TEMPLATED_FILES}
249+ git rm .github/ISSUE_TEMPLATE.md || :
244250 git commit -m 'Bot Updating Templated Files'
245251 git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
246252 echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
@@ -310,8 +316,9 @@ pipeline {
310316 environment name : ' EXIT_STATUS' , value : ' '
311317 }
312318 steps {
319+ echo " Running on node: ${ NODE_NAME} "
313320 sh " docker build --no-cache --pull -t ${ IMAGE} :${ META_TAG} \
314- --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG } \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
321+ --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ VERSION_TAG } \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
315322 }
316323 }
317324 // Build MultiArch Docker containers for push to LS Repo
@@ -323,21 +330,23 @@ pipeline {
323330 parallel {
324331 stage(' Build X86' ) {
325332 steps {
333+ echo " Running on node: ${ NODE_NAME} "
326334 sh " docker build --no-cache --pull -t ${ IMAGE} :amd64-${ META_TAG} \
327- --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG } \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
335+ --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ VERSION_TAG } \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
328336 }
329337 }
330338 stage(' Build ARMHF' ) {
331339 agent {
332340 label ' ARMHF'
333341 }
334342 steps {
343+ echo " Running on node: ${ NODE_NAME} "
335344 echo ' Logging into Github'
336345 sh ''' #! /bin/bash
337346 echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
338347 '''
339348 sh " docker build --no-cache --pull -f Dockerfile.armhf -t ${ IMAGE} :arm32v7-${ META_TAG} \
340- --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG } \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
349+ --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ VERSION_TAG } \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
341350 sh " docker tag ${ IMAGE} :arm32v7-${ META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${ COMMIT_SHA} -${ BUILD_NUMBER} "
342351 retry(5 ) {
343352 sh " docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${ COMMIT_SHA} -${ BUILD_NUMBER} "
@@ -352,12 +361,13 @@ pipeline {
352361 label ' ARM64'
353362 }
354363 steps {
364+ echo " Running on node: ${ NODE_NAME} "
355365 echo ' Logging into Github'
356366 sh ''' #! /bin/bash
357367 echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
358368 '''
359369 sh " docker build --no-cache --pull -f Dockerfile.aarch64 -t ${ IMAGE} :arm64v8-${ META_TAG} \
360- --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG } \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
370+ --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ VERSION_TAG } \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
361371 sh " docker tag ${ IMAGE} :arm64v8-${ META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${ COMMIT_SHA} -${ BUILD_NUMBER} "
362372 retry(5 ) {
363373 sh " docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${ COMMIT_SHA} -${ BUILD_NUMBER} "
@@ -430,6 +440,13 @@ pipeline {
430440 environment name : ' EXIT_STATUS' , value : ' '
431441 }
432442 steps {
443+ sh ''' #! /bin/bash
444+ echo "Packages were updated. Cleaning up the image and exiting."
445+ if [ "${MULTIARCH}" == "true" ]; then
446+ docker rmi ${IMAGE}:amd64-${META_TAG}
447+ else
448+ docker rmi ${IMAGE}:${META_TAG}
449+ fi'''
433450 script{
434451 env. EXIT_STATUS = ' ABORTED'
435452 }
@@ -447,6 +464,13 @@ pipeline {
447464 }
448465 }
449466 steps {
467+ sh ''' #! /bin/bash
468+ echo "There are no package updates. Cleaning up the image and exiting."
469+ if [ "${MULTIARCH}" == "true" ]; then
470+ docker rmi ${IMAGE}:amd64-${META_TAG}
471+ else
472+ docker rmi ${IMAGE}:${META_TAG}
473+ fi'''
450474 script{
451475 env. EXIT_STATUS = ' ABORTED'
452476 }
@@ -536,7 +560,7 @@ pipeline {
536560 '''
537561 }
538562 sh ''' #! /bin/bash
539- for DELETEIMAGE in "${GITHUBIMAGE}" "{GITLABIMAGE}" "${IMAGE}"; do
563+ for DELETEIMAGE in "${GITHUBIMAGE}" "$ {GITLABIMAGE}" "${IMAGE}"; do
540564 docker rmi \
541565 ${DELETEIMAGE}:${META_TAG} \
542566 ${DELETEIMAGE}:${EXT_RELEASE_TAG} \
@@ -600,6 +624,7 @@ pipeline {
600624 docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
601625 docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
602626 docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
627+ docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || :
603628 docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
604629 docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm
605630 docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
@@ -614,10 +639,13 @@ pipeline {
614639 docker rmi \
615640 ${DELETEIMAGE}:amd64-${META_TAG} \
616641 ${DELETEIMAGE}:amd64-alpine \
642+ ${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
617643 ${DELETEIMAGE}:arm32v7-${META_TAG} \
618644 ${DELETEIMAGE}:arm32v7-alpine \
645+ ${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
619646 ${DELETEIMAGE}:arm64v8-${META_TAG} \
620- ${DELETEIMAGE}:arm64v8-alpine || :
647+ ${DELETEIMAGE}:arm64v8-alpine \
648+ ${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
621649 done
622650 docker rmi \
623651 ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
@@ -684,7 +712,7 @@ pipeline {
684712 -e DOCKER_REPOSITORY=${IMAGE} \
685713 -e GIT_BRANCH=master \
686714 -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/mnt \
687- ghcr.io/linuxserver/lsiodev-readme-sync bash -c 'node sync'
715+ ghcr.io/linuxserver/lsiodev-readme-sync bash -c 'node sync'
688716 rm -Rf ${TEMPDIR} '''
689717 }
690718 }
0 commit comments