@@ -16,6 +16,7 @@ pipeline {
16
16
GITHUB_TOKEN = credentials(' 498b4638-2d02-4ce5-832d-8a57d01d97ab' )
17
17
GITLAB_TOKEN = credentials(' b6f0f1dd-6952-4cf6-95d1-9c06380283f0' )
18
18
GITLAB_NAMESPACE = credentials(' gitlab-namespace-id' )
19
+ SCARF_TOKEN = credentials(' scarf_api_key' )
19
20
EXT_GIT_BRANCH = ' master'
20
21
EXT_USER = ' magne4000'
21
22
EXT_REPO = ' quassel-webserver'
@@ -58,7 +59,7 @@ pipeline {
58
59
env. CODE_URL = ' https://github.com/' + env. LS_USER + ' /' + env. LS_REPO + ' /commit/' + env. GIT_COMMIT
59
60
env. DOCKERHUB_LINK = ' https://hub.docker.com/r/' + env. DOCKERHUB_IMAGE + ' /tags/'
60
61
env. PULL_REQUEST = env. CHANGE_ID
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/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/stale.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml'
62
+ env. TEMPLATED_FILES = ' Jenkinsfile README.md LICENSE .editorconfig . /.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/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/stale.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml'
62
63
}
63
64
script{
64
65
env. LS_RELEASE_NUMBER = sh(
@@ -126,6 +127,23 @@ pipeline {
126
127
env. EXT_RELEASE_CLEAN = sh(
127
128
script : ''' echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g' ''' ,
128
129
returnStdout : true ). trim()
130
+
131
+ env. SEMVER = (new Date ()). format(' YYYY.MM.dd' )
132
+ def semver = env. EXT_RELEASE_CLEAN =~ / (\d +)\. (\d +)\. (\d +)$/
133
+ if (semver. find()) {
134
+ env. SEMVER = " ${ semver[0][1]} .${ semver[0][2]} .${ semver[0][3]} "
135
+ } else {
136
+ semver = env. EXT_RELEASE_CLEAN =~ / (\d +)\. (\d +)(?:\. (\d +))?(.*)$/
137
+ if (semver. find()) {
138
+ if (semver[0 ][3 ]) {
139
+ env. SEMVER = " ${ semver[0][1]} .${ semver[0][2]} .${ semver[0][3]} "
140
+ } else if (! semver[0 ][3 ] && ! semver[0 ][4 ]) {
141
+ env. SEMVER = " ${ semver[0][1]} .${ semver[0][2]} .${ (new Date()).format('YYYYMMdd')} "
142
+ }
143
+ }
144
+ }
145
+
146
+ println (" SEMVER: ${ env.SEMVER} " )
129
147
}
130
148
}
131
149
}
@@ -140,6 +158,7 @@ pipeline {
140
158
env. IMAGE = env. DOCKERHUB_IMAGE
141
159
env. GITHUBIMAGE = ' ghcr.io/' + env. LS_USER + ' /' + env. CONTAINER_NAME
142
160
env. GITLABIMAGE = ' registry.gitlab.com/linuxserver.io/' + env. LS_REPO + ' /' + env. CONTAINER_NAME
161
+ env. QUAYIMAGE = ' quay.io/linuxserver.io/' + env. CONTAINER_NAME
143
162
if (env. MULTIARCH == ' true' ) {
144
163
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
145
164
} else {
@@ -162,6 +181,7 @@ pipeline {
162
181
env. IMAGE = env. DEV_DOCKERHUB_IMAGE
163
182
env. GITHUBIMAGE = ' ghcr.io/' + env. LS_USER + ' /lsiodev-' + env. CONTAINER_NAME
164
183
env. GITLABIMAGE = ' registry.gitlab.com/linuxserver.io/' + env. LS_REPO + ' /lsiodev-' + env. CONTAINER_NAME
184
+ env. QUAYIMAGE = ' quay.io/linuxserver.io/lsiodev-' + env. CONTAINER_NAME
165
185
if (env. MULTIARCH == ' true' ) {
166
186
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
167
187
} else {
@@ -184,6 +204,7 @@ pipeline {
184
204
env. IMAGE = env. PR_DOCKERHUB_IMAGE
185
205
env. GITHUBIMAGE = ' ghcr.io/' + env. LS_USER + ' /lspipepr-' + env. CONTAINER_NAME
186
206
env. GITLABIMAGE = ' registry.gitlab.com/linuxserver.io/' + env. LS_REPO + ' /lspipepr-' + env. CONTAINER_NAME
207
+ env. QUAYIMAGE = ' quay.io/linuxserver.io/lspipepr-' + env. CONTAINER_NAME
187
208
if (env. MULTIARCH == ' true' ) {
188
209
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
189
210
} else {
@@ -270,7 +291,6 @@ pipeline {
270
291
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
271
292
cd ${TEMPDIR}/repo/${LS_REPO}
272
293
git checkout -f master
273
- cd ${TEMPDIR}/docker-${CONTAINER_NAME}
274
294
for i in ${TEMPLATES_TO_DELETE}; do
275
295
git rm "${i}"
276
296
done
@@ -380,13 +400,57 @@ pipeline {
380
400
"visibility":"public"}' '''
381
401
}
382
402
}
403
+ /* #######################
404
+ Scarf.sh package registry
405
+ ####################### */
406
+ // Add package to Scarf.sh and set permissions
407
+ stage(" Scarf.sh package registry" ){
408
+ when {
409
+ branch " master"
410
+ environment name : ' EXIT_STATUS' , value : ' '
411
+ }
412
+ steps{
413
+ sh ''' #! /bin/bash
414
+ set -e
415
+ PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/packages | jq -r '.[] | select(.name=="linuxserver/quassel-web") | .uuid')
416
+ if [ -z "${PACKAGE_UUID}" ]; then
417
+ echo "Adding package to Scarf.sh"
418
+ PACKAGE_UUID=$(curl -sX POST https://scarf.sh/api/v1/packages \
419
+ -H "Authorization: Bearer ${SCARF_TOKEN}" \
420
+ -H "Content-Type: application/json" \
421
+ -d '{"name":"linuxserver/quassel-web",\
422
+ "shortDescription":"example description",\
423
+ "libraryType":"docker",\
424
+ "website":"https://github.com/linuxserver/docker-quassel-web",\
425
+ "backendUrl":"https://ghcr.io/linuxserver/quassel-web",\
426
+ "publicUrl":"https://lscr.io/linuxserver/quassel-web"}' \
427
+ | jq -r .uuid)
428
+ else
429
+ echo "Package already exists on Scarf.sh"
430
+ fi
431
+ echo "Setting permissions on Scarf.sh for package ${PACKAGE_UUID}"
432
+ curl -X POST https://scarf.sh/api/v1/packages/${PACKAGE_UUID}/permissions \
433
+ -H "Authorization: Bearer ${SCARF_TOKEN}" \
434
+ -H "Content-Type: application/json" \
435
+ -d '[{"userQuery":"Spad","permissionLevel":"admin"},\
436
+ {"userQuery":"roxedus","permissionLevel":"admin"},\
437
+ {"userQuery":"nemchik","permissionLevel":"admin"},\
438
+ {"userQuery":"driz","permissionLevel":"admin"},\
439
+ {"userQuery":"aptalca","permissionLevel":"admin"},\
440
+ {"userQuery":"saarg","permissionLevel":"admin"},\
441
+ {"userQuery":"Stark","permissionLevel":"admin"}]'
442
+ '''
443
+ }
444
+ }
383
445
/* ###############
384
446
Build Container
385
447
############### */
386
448
// Build Docker container for push to LS Repo
387
449
stage(' Build-Single' ) {
388
450
when {
389
- environment name : ' MULTIARCH' , value : ' false'
451
+ expression {
452
+ env. MULTIARCH == ' false' || params. PACKAGE_CHECK == ' true'
453
+ }
390
454
environment name : ' EXIT_STATUS' , value : ' '
391
455
}
392
456
steps {
@@ -411,7 +475,10 @@ pipeline {
411
475
// Build MultiArch Docker containers for push to LS Repo
412
476
stage(' Build-Multi' ) {
413
477
when {
414
- environment name : ' MULTIARCH' , value : ' true'
478
+ allOf {
479
+ environment name : ' MULTIARCH' , value : ' true'
480
+ expression { params. PACKAGE_CHECK == ' false' }
481
+ }
415
482
environment name : ' EXIT_STATUS' , value : ' '
416
483
}
417
484
parallel {
@@ -516,7 +583,7 @@ pipeline {
516
583
sh ''' #! /bin/bash
517
584
set -e
518
585
TEMPDIR=$(mktemp -d)
519
- if [ "${MULTIARCH}" == "true" ]; then
586
+ if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ] ; then
520
587
LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG}
521
588
else
522
589
LOCAL_CONTAINER=${IMAGE}:${META_TAG}
@@ -531,6 +598,15 @@ pipeline {
531
598
apt list -qq --installed | sed "s#/.*now ##g" | cut -d" " -f1 > /tmp/package_versions.txt && \
532
599
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
533
600
chmod 777 /tmp/package_versions.txt'
601
+ elif [ "${DIST_IMAGE}" == "fedora" ]; then
602
+ docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
603
+ rpm -qa > /tmp/package_versions.txt && \
604
+ sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
605
+ chmod 777 /tmp/package_versions.txt'
606
+ elif [ "${DIST_IMAGE}" == "arch" ]; then
607
+ docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
608
+ pacman -Q > /tmp/package_versions.txt && \
609
+ chmod 777 /tmp/package_versions.txt'
534
610
fi
535
611
NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
536
612
echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github"
@@ -568,7 +644,7 @@ pipeline {
568
644
steps {
569
645
sh ''' #! /bin/bash
570
646
echo "Packages were updated. Cleaning up the image and exiting."
571
- if [ "${MULTIARCH}" == "true" ]; then
647
+ if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ] ; then
572
648
docker rmi ${IMAGE}:amd64-${META_TAG}
573
649
else
574
650
docker rmi ${IMAGE}:${META_TAG}
@@ -592,7 +668,7 @@ pipeline {
592
668
steps {
593
669
sh ''' #! /bin/bash
594
670
echo "There are no package updates. Cleaning up the image and exiting."
595
- if [ "${MULTIARCH}" == "true" ]; then
671
+ if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ] ; then
596
672
docker rmi ${IMAGE}:amd64-${META_TAG}
597
673
else
598
674
docker rmi ${IMAGE}:${META_TAG}
@@ -667,6 +743,12 @@ pipeline {
667
743
credentialsId : ' 3f9ba4d5-100d-45b0-a3c4-633fd6061207' ,
668
744
usernameVariable : ' DOCKERUSER' ,
669
745
passwordVariable : ' DOCKERPASS'
746
+ ],
747
+ [
748
+ $class : ' UsernamePasswordMultiBinding' ,
749
+ credentialsId : ' Quay.io-Robot' ,
750
+ usernameVariable : ' QUAYUSER' ,
751
+ passwordVariable : ' QUAYPASS'
670
752
]
671
753
]) {
672
754
retry(5 ) {
@@ -675,22 +757,26 @@ pipeline {
675
757
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
676
758
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
677
759
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
678
- for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
760
+ echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
761
+ for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
679
762
docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
680
763
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest
681
764
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG}
765
+ docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${SEMVER}
682
766
docker push ${PUSHIMAGE}:latest
683
767
docker push ${PUSHIMAGE}:${META_TAG}
684
768
docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG}
769
+ docker push ${PUSHIMAGE}:${SEMVER}
685
770
done
686
771
'''
687
772
}
688
773
sh ''' #! /bin/bash
689
- for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
774
+ for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${ IMAGE}"; do
690
775
docker rmi \
691
776
${DELETEIMAGE}:${META_TAG} \
692
777
${DELETEIMAGE}:${EXT_RELEASE_TAG} \
693
- ${DELETEIMAGE}:latest || :
778
+ ${DELETEIMAGE}:latest \
779
+ ${DELETEIMAGE}:${SEMVER} || :
694
780
done
695
781
'''
696
782
}
@@ -709,6 +795,12 @@ pipeline {
709
795
credentialsId : ' 3f9ba4d5-100d-45b0-a3c4-633fd6061207' ,
710
796
usernameVariable : ' DOCKERUSER' ,
711
797
passwordVariable : ' DOCKERPASS'
798
+ ],
799
+ [
800
+ $class : ' UsernamePasswordMultiBinding' ,
801
+ credentialsId : ' Quay.io-Robot' ,
802
+ usernameVariable : ' QUAYUSER' ,
803
+ passwordVariable : ' QUAYPASS'
712
804
]
713
805
]) {
714
806
retry(5 ) {
@@ -717,13 +809,14 @@ pipeline {
717
809
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
718
810
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
719
811
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
812
+ echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
720
813
if [ "${CI}" == "false" ]; then
721
814
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
722
815
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
723
816
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
724
817
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
725
818
fi
726
- for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}"; do
819
+ for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}" ; do
727
820
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
728
821
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
729
822
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
@@ -733,6 +826,9 @@ pipeline {
733
826
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
734
827
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
735
828
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
829
+ docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER}
830
+ docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${SEMVER}
831
+ docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
736
832
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
737
833
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
738
834
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
@@ -742,6 +838,9 @@ pipeline {
742
838
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
743
839
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
744
840
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
841
+ docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
842
+ docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER}
843
+ docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
745
844
docker manifest push --purge ${MANIFESTIMAGE}:latest || :
746
845
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest
747
846
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
@@ -754,24 +853,32 @@ pipeline {
754
853
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
755
854
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm
756
855
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
856
+ docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
857
+ docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
858
+ docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm
859
+ docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
757
860
docker manifest push --purge ${MANIFESTIMAGE}:latest
758
861
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
759
862
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
863
+ docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER}
760
864
done
761
865
'''
762
866
}
763
867
sh ''' #! /bin/bash
764
- for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
868
+ for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${ IMAGE}"; do
765
869
docker rmi \
766
870
${DELETEIMAGE}:amd64-${META_TAG} \
767
871
${DELETEIMAGE}:amd64-latest \
768
872
${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
873
+ ${DELETEIMAGE}:amd64-${SEMVER} \
769
874
${DELETEIMAGE}:arm32v7-${META_TAG} \
770
875
${DELETEIMAGE}:arm32v7-latest \
771
876
${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
877
+ ${DELETEIMAGE}:arm32v7-${SEMVER} \
772
878
${DELETEIMAGE}:arm64v8-${META_TAG} \
773
879
${DELETEIMAGE}:arm64v8-latest \
774
- ${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
880
+ ${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} \
881
+ ${DELETEIMAGE}:arm64v8-${SEMVER} || :
775
882
done
776
883
docker rmi \
777
884
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
0 commit comments