@@ -58,7 +58,7 @@ pipeline {
58
58
env. CODE_URL = ' https://github.com/' + env. LS_USER + ' /' + env. LS_REPO + ' /commit/' + env. GIT_COMMIT
59
59
env. DOCKERHUB_LINK = ' https://hub.docker.com/r/' + env. DOCKERHUB_IMAGE + ' /tags/'
60
60
env. PULL_REQUEST = env. CHANGE_ID
61
- 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'
61
+ 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'
62
62
}
63
63
script{
64
64
env. LS_RELEASE_NUMBER = sh(
@@ -145,6 +145,7 @@ pipeline {
145
145
} else {
146
146
env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER
147
147
}
148
+ env. VERSION_TAG = env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER
148
149
env. META_TAG = env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER
149
150
env. EXT_RELEASE_TAG = ' version-' + env. EXT_RELEASE_CLEAN
150
151
}
@@ -166,6 +167,7 @@ pipeline {
166
167
} else {
167
168
env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA
168
169
}
170
+ env. VERSION_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA
169
171
env. META_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA
170
172
env. EXT_RELEASE_TAG = ' version-' + env. EXT_RELEASE_CLEAN
171
173
env. DOCKERHUB_LINK = ' https://hub.docker.com/r/' + env. DEV_DOCKERHUB_IMAGE + ' /tags/'
@@ -187,6 +189,7 @@ pipeline {
187
189
} else {
188
190
env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
189
191
}
192
+ env. VERSION_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
190
193
env. META_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
191
194
env. EXT_RELEASE_TAG = ' version-' + env. EXT_RELEASE_CLEAN
192
195
env. CODE_URL = ' https://github.com/' + env. LS_USER + ' /' + env. LS_REPO + ' /pull/' + env. PULL_REQUEST
@@ -248,9 +251,12 @@ pipeline {
248
251
git checkout -f master
249
252
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
250
253
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
251
- cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/
254
+ mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
255
+ rm -f ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE.md
256
+ cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || :
252
257
cd ${TEMPDIR}/repo/${LS_REPO}/
253
258
git add ${TEMPLATED_FILES}
259
+ git rm .github/ISSUE_TEMPLATE.md || :
254
260
git commit -m 'Bot Updating Templated Files'
255
261
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
256
262
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
@@ -320,8 +326,9 @@ pipeline {
320
326
environment name : ' EXIT_STATUS' , value : ' '
321
327
}
322
328
steps {
329
+ echo " Running on node: ${ NODE_NAME} "
323
330
sh " docker build --no-cache --pull -t ${ IMAGE} :${ META_TAG} \
324
- --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG } \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
331
+ --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ VERSION_TAG } \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
325
332
}
326
333
}
327
334
// Build MultiArch Docker containers for push to LS Repo
@@ -333,21 +340,23 @@ pipeline {
333
340
parallel {
334
341
stage(' Build X86' ) {
335
342
steps {
343
+ echo " Running on node: ${ NODE_NAME} "
336
344
sh " docker build --no-cache --pull -t ${ IMAGE} :amd64-${ META_TAG} \
337
- --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG } \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
345
+ --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ VERSION_TAG } \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
338
346
}
339
347
}
340
348
stage(' Build ARMHF' ) {
341
349
agent {
342
350
label ' ARMHF'
343
351
}
344
352
steps {
353
+ echo " Running on node: ${ NODE_NAME} "
345
354
echo ' Logging into Github'
346
355
sh ''' #! /bin/bash
347
356
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
348
357
'''
349
358
sh " docker build --no-cache --pull -f Dockerfile.armhf -t ${ IMAGE} :arm32v7-${ META_TAG} \
350
- --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG } \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
359
+ --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ VERSION_TAG } \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
351
360
sh " docker tag ${ IMAGE} :arm32v7-${ META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${ COMMIT_SHA} -${ BUILD_NUMBER} "
352
361
retry(5 ) {
353
362
sh " docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${ COMMIT_SHA} -${ BUILD_NUMBER} "
@@ -362,12 +371,13 @@ pipeline {
362
371
label ' ARM64'
363
372
}
364
373
steps {
374
+ echo " Running on node: ${ NODE_NAME} "
365
375
echo ' Logging into Github'
366
376
sh ''' #! /bin/bash
367
377
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
368
378
'''
369
379
sh " docker build --no-cache --pull -f Dockerfile.aarch64 -t ${ IMAGE} :arm64v8-${ META_TAG} \
370
- --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG } \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
380
+ --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ VERSION_TAG } \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
371
381
sh " docker tag ${ IMAGE} :arm64v8-${ META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${ COMMIT_SHA} -${ BUILD_NUMBER} "
372
382
retry(5 ) {
373
383
sh " docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${ COMMIT_SHA} -${ BUILD_NUMBER} "
@@ -440,6 +450,13 @@ pipeline {
440
450
environment name : ' EXIT_STATUS' , value : ' '
441
451
}
442
452
steps {
453
+ sh ''' #! /bin/bash
454
+ echo "Packages were updated. Cleaning up the image and exiting."
455
+ if [ "${MULTIARCH}" == "true" ]; then
456
+ docker rmi ${IMAGE}:amd64-${META_TAG}
457
+ else
458
+ docker rmi ${IMAGE}:${META_TAG}
459
+ fi'''
443
460
script{
444
461
env. EXIT_STATUS = ' ABORTED'
445
462
}
@@ -457,6 +474,13 @@ pipeline {
457
474
}
458
475
}
459
476
steps {
477
+ sh ''' #! /bin/bash
478
+ echo "There are no package updates. Cleaning up the image and exiting."
479
+ if [ "${MULTIARCH}" == "true" ]; then
480
+ docker rmi ${IMAGE}:amd64-${META_TAG}
481
+ else
482
+ docker rmi ${IMAGE}:${META_TAG}
483
+ fi'''
460
484
script{
461
485
env. EXIT_STATUS = ' ABORTED'
462
486
}
@@ -546,7 +570,7 @@ pipeline {
546
570
'''
547
571
}
548
572
sh ''' #! /bin/bash
549
- for DELETEIMAGE in "${GITHUBIMAGE}" "{GITLABIMAGE}" "${IMAGE}"; do
573
+ for DELETEIMAGE in "${GITHUBIMAGE}" "$ {GITLABIMAGE}" "${IMAGE}"; do
550
574
docker rmi \
551
575
${DELETEIMAGE}:${META_TAG} \
552
576
${DELETEIMAGE}:${EXT_RELEASE_TAG} \
@@ -610,6 +634,7 @@ pipeline {
610
634
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
611
635
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
612
636
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
637
+ docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || :
613
638
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
614
639
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm
615
640
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
@@ -624,10 +649,13 @@ pipeline {
624
649
docker rmi \
625
650
${DELETEIMAGE}:amd64-${META_TAG} \
626
651
${DELETEIMAGE}:amd64-latest \
652
+ ${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
627
653
${DELETEIMAGE}:arm32v7-${META_TAG} \
628
654
${DELETEIMAGE}:arm32v7-latest \
655
+ ${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
629
656
${DELETEIMAGE}:arm64v8-${META_TAG} \
630
- ${DELETEIMAGE}:arm64v8-latest || :
657
+ ${DELETEIMAGE}:arm64v8-latest \
658
+ ${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
631
659
done
632
660
docker rmi \
633
661
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
@@ -694,7 +722,7 @@ pipeline {
694
722
-e DOCKER_REPOSITORY=${IMAGE} \
695
723
-e GIT_BRANCH=master \
696
724
-v ${TEMPDIR}/docker-${CONTAINER_NAME}:/mnt \
697
- ghcr.io/linuxserver/lsiodev-readme-sync bash -c 'node sync'
725
+ ghcr.io/linuxserver/lsiodev-readme-sync bash -c 'node sync'
698
726
rm -Rf ${TEMPDIR} '''
699
727
}
700
728
}
0 commit comments