@@ -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
BUILD_VERSION_ARG = ' OS'
20
21
LS_USER = ' linuxserver'
21
22
LS_REPO = ' docker-readme-sync'
@@ -49,7 +50,7 @@ pipeline {
49
50
env. CODE_URL = ' https://github.com/' + env. LS_USER + ' /' + env. LS_REPO + ' /commit/' + env. GIT_COMMIT
50
51
env. DOCKERHUB_LINK = ' https://hub.docker.com/r/' + env. DOCKERHUB_IMAGE + ' /tags/'
51
52
env. PULL_REQUEST = env. CHANGE_ID
52
- 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'
53
+ 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'
53
54
}
54
55
script{
55
56
env. LS_RELEASE_NUMBER = sh(
@@ -108,6 +109,30 @@ pipeline {
108
109
env. EXT_RELEASE_CLEAN = sh(
109
110
script : ''' echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g' ''' ,
110
111
returnStdout : true ). trim()
112
+
113
+ def semver = env. EXT_RELEASE_CLEAN =~ / (\d +)\. (\d +)\. (\d +)/
114
+ if (semver. find()) {
115
+ env. SEMVER = " ${ semver[0][1]} .${ semver[0][2]} .${ semver[0][3]} "
116
+ } else {
117
+ semver = env. EXT_RELEASE_CLEAN =~ / (\d +)\. (\d +)(?:\. (\d +))?(.*)/
118
+ if (semver. find()) {
119
+ if (semver[0 ][3 ]) {
120
+ env. SEMVER = " ${ semver[0][1]} .${ semver[0][2]} .${ semver[0][3]} "
121
+ } else if (! semver[0 ][3 ] && ! semver[0 ][4 ]) {
122
+ env. SEMVER = " ${ semver[0][1]} .${ semver[0][2]} .${ (new Date()).format('YYYYMMdd')} "
123
+ }
124
+ }
125
+ }
126
+
127
+ if (env. SEMVER != null ) {
128
+ if (BRANCH_NAME != " master" && BRANCH_NAME != " main" ) {
129
+ env. SEMVER = " ${ env.SEMVER} -${ BRANCH_NAME} "
130
+ }
131
+ println (" SEMVER: ${ env.SEMVER} " )
132
+ } else {
133
+ println (" No SEMVER detected" )
134
+ }
135
+
111
136
}
112
137
}
113
138
}
@@ -122,6 +147,7 @@ pipeline {
122
147
env. IMAGE = env. DOCKERHUB_IMAGE
123
148
env. GITHUBIMAGE = ' ghcr.io/' + env. LS_USER + ' /' + env. CONTAINER_NAME
124
149
env. GITLABIMAGE = ' registry.gitlab.com/linuxserver.io/' + env. LS_REPO + ' /' + env. CONTAINER_NAME
150
+ env. QUAYIMAGE = ' quay.io/linuxserver.io/' + env. CONTAINER_NAME
125
151
if (env. MULTIARCH == ' true' ) {
126
152
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
127
153
} else {
@@ -144,6 +170,7 @@ pipeline {
144
170
env. IMAGE = env. DEV_DOCKERHUB_IMAGE
145
171
env. GITHUBIMAGE = ' ghcr.io/' + env. LS_USER + ' /lsiodev-' + env. CONTAINER_NAME
146
172
env. GITLABIMAGE = ' registry.gitlab.com/linuxserver.io/' + env. LS_REPO + ' /lsiodev-' + env. CONTAINER_NAME
173
+ env. QUAYIMAGE = ' quay.io/linuxserver.io/lsiodev-' + env. CONTAINER_NAME
147
174
if (env. MULTIARCH == ' true' ) {
148
175
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
149
176
} else {
@@ -166,6 +193,7 @@ pipeline {
166
193
env. IMAGE = env. PR_DOCKERHUB_IMAGE
167
194
env. GITHUBIMAGE = ' ghcr.io/' + env. LS_USER + ' /lspipepr-' + env. CONTAINER_NAME
168
195
env. GITLABIMAGE = ' registry.gitlab.com/linuxserver.io/' + env. LS_REPO + ' /lspipepr-' + env. CONTAINER_NAME
196
+ env. QUAYIMAGE = ' quay.io/linuxserver.io/lspipepr-' + env. CONTAINER_NAME
169
197
if (env. MULTIARCH == ' true' ) {
170
198
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
171
199
} else {
@@ -252,7 +280,6 @@ pipeline {
252
280
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
253
281
cd ${TEMPDIR}/repo/${LS_REPO}
254
282
git checkout -f master
255
- cd ${TEMPDIR}/docker-${CONTAINER_NAME}
256
283
for i in ${TEMPLATES_TO_DELETE}; do
257
284
git rm "${i}"
258
285
done
@@ -343,13 +370,45 @@ pipeline {
343
370
"visibility":"public"}' '''
344
371
}
345
372
}
373
+ /* #######################
374
+ Scarf.sh package registry
375
+ ####################### */
376
+ // Add package to Scarf.sh and set permissions
377
+ stage(" Scarf.sh package registry" ){
378
+ when {
379
+ branch " master"
380
+ environment name : ' EXIT_STATUS' , value : ' '
381
+ }
382
+ steps{
383
+ sh ''' #! /bin/bash
384
+ set -e
385
+ PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/readme-sync") | .uuid')
386
+ if [ -z "${PACKAGE_UUID}" ]; then
387
+ echo "Adding package to Scarf.sh"
388
+ curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
389
+ -H "Authorization: Bearer ${SCARF_TOKEN}" \
390
+ -H "Content-Type: application/json" \
391
+ -d '{"name":"linuxserver/readme-sync",\
392
+ "shortDescription":"example description",\
393
+ "libraryType":"docker",\
394
+ "website":"https://github.com/linuxserver/docker-readme-sync",\
395
+ "backendUrl":"https://ghcr.io/linuxserver/readme-sync",\
396
+ "publicUrl":"https://lscr.io/linuxserver/readme-sync"}' || :
397
+ else
398
+ echo "Package already exists on Scarf.sh"
399
+ fi
400
+ '''
401
+ }
402
+ }
346
403
/* ###############
347
404
Build Container
348
405
############### */
349
406
// Build Docker container for push to LS Repo
350
407
stage(' Build-Single' ) {
351
408
when {
352
- environment name : ' MULTIARCH' , value : ' false'
409
+ expression {
410
+ env. MULTIARCH == ' false' || params. PACKAGE_CHECK == ' true'
411
+ }
353
412
environment name : ' EXIT_STATUS' , value : ' '
354
413
}
355
414
steps {
@@ -374,7 +433,10 @@ pipeline {
374
433
// Build MultiArch Docker containers for push to LS Repo
375
434
stage(' Build-Multi' ) {
376
435
when {
377
- environment name : ' MULTIARCH' , value : ' true'
436
+ allOf {
437
+ environment name : ' MULTIARCH' , value : ' true'
438
+ expression { params. PACKAGE_CHECK == ' false' }
439
+ }
378
440
environment name : ' EXIT_STATUS' , value : ' '
379
441
}
380
442
parallel {
@@ -479,7 +541,7 @@ pipeline {
479
541
sh ''' #! /bin/bash
480
542
set -e
481
543
TEMPDIR=$(mktemp -d)
482
- if [ "${MULTIARCH}" == "true" ]; then
544
+ if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ] ; then
483
545
LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG}
484
546
else
485
547
LOCAL_CONTAINER=${IMAGE}:${META_TAG}
@@ -494,6 +556,15 @@ pipeline {
494
556
apt list -qq --installed | sed "s#/.*now ##g" | cut -d" " -f1 > /tmp/package_versions.txt && \
495
557
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
496
558
chmod 777 /tmp/package_versions.txt'
559
+ elif [ "${DIST_IMAGE}" == "fedora" ]; then
560
+ docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
561
+ rpm -qa > /tmp/package_versions.txt && \
562
+ sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
563
+ chmod 777 /tmp/package_versions.txt'
564
+ elif [ "${DIST_IMAGE}" == "arch" ]; then
565
+ docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
566
+ pacman -Q > /tmp/package_versions.txt && \
567
+ chmod 777 /tmp/package_versions.txt'
497
568
fi
498
569
NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
499
570
echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github"
@@ -531,7 +602,7 @@ pipeline {
531
602
steps {
532
603
sh ''' #! /bin/bash
533
604
echo "Packages were updated. Cleaning up the image and exiting."
534
- if [ "${MULTIARCH}" == "true" ]; then
605
+ if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ] ; then
535
606
docker rmi ${IMAGE}:amd64-${META_TAG}
536
607
else
537
608
docker rmi ${IMAGE}:${META_TAG}
@@ -555,7 +626,7 @@ pipeline {
555
626
steps {
556
627
sh ''' #! /bin/bash
557
628
echo "There are no package updates. Cleaning up the image and exiting."
558
- if [ "${MULTIARCH}" == "true" ]; then
629
+ if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ] ; then
559
630
docker rmi ${IMAGE}:amd64-${META_TAG}
560
631
else
561
632
docker rmi ${IMAGE}:${META_TAG}
@@ -610,7 +681,7 @@ pipeline {
610
681
-e DO_REGION="ams3" \
611
682
-e DO_BUCKET="lsio-ci" \
612
683
-t ghcr.io/linuxserver/ci:latest \
613
- python /ci/ci .py'''
684
+ python3 test_build .py'''
614
685
}
615
686
}
616
687
}
@@ -630,6 +701,12 @@ pipeline {
630
701
credentialsId : ' 3f9ba4d5-100d-45b0-a3c4-633fd6061207' ,
631
702
usernameVariable : ' DOCKERUSER' ,
632
703
passwordVariable : ' DOCKERPASS'
704
+ ],
705
+ [
706
+ $class : ' UsernamePasswordMultiBinding' ,
707
+ credentialsId : ' Quay.io-Robot' ,
708
+ usernameVariable : ' QUAYUSER' ,
709
+ passwordVariable : ' QUAYPASS'
633
710
]
634
711
]) {
635
712
retry(5 ) {
@@ -638,22 +715,32 @@ pipeline {
638
715
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
639
716
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
640
717
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
641
- for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
718
+ echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
719
+ for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
642
720
docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
643
721
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest
644
722
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG}
723
+ if [ -n "${SEMVER}" ]; then
724
+ docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${SEMVER}
725
+ fi
645
726
docker push ${PUSHIMAGE}:latest
646
727
docker push ${PUSHIMAGE}:${META_TAG}
647
728
docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG}
729
+ if [ -n "${SEMVER}" ]; then
730
+ docker push ${PUSHIMAGE}:${SEMVER}
731
+ fi
648
732
done
649
733
'''
650
734
}
651
735
sh ''' #! /bin/bash
652
- for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
736
+ for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${ IMAGE}"; do
653
737
docker rmi \
654
738
${DELETEIMAGE}:${META_TAG} \
655
739
${DELETEIMAGE}:${EXT_RELEASE_TAG} \
656
740
${DELETEIMAGE}:latest || :
741
+ if [ -n "${SEMVER}" ]; then
742
+ docker rmi ${DELETEIMAGE}:${SEMVER} || :
743
+ fi
657
744
done
658
745
'''
659
746
}
@@ -672,6 +759,12 @@ pipeline {
672
759
credentialsId : ' 3f9ba4d5-100d-45b0-a3c4-633fd6061207' ,
673
760
usernameVariable : ' DOCKERUSER' ,
674
761
passwordVariable : ' DOCKERPASS'
762
+ ],
763
+ [
764
+ $class : ' UsernamePasswordMultiBinding' ,
765
+ credentialsId : ' Quay.io-Robot' ,
766
+ usernameVariable : ' QUAYUSER' ,
767
+ passwordVariable : ' QUAYPASS'
675
768
]
676
769
]) {
677
770
retry(5 ) {
@@ -680,13 +773,14 @@ pipeline {
680
773
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
681
774
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
682
775
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
776
+ echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
683
777
if [ "${CI}" == "false" ]; then
684
778
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
685
779
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
686
780
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
687
781
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
688
782
fi
689
- for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}"; do
783
+ for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}" ; do
690
784
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
691
785
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
692
786
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
@@ -696,6 +790,11 @@ pipeline {
696
790
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
697
791
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
698
792
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
793
+ if [ -n "${SEMVER}" ]; then
794
+ docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER}
795
+ docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${SEMVER}
796
+ docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
797
+ fi
699
798
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
700
799
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
701
800
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
@@ -705,6 +804,11 @@ pipeline {
705
804
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
706
805
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
707
806
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
807
+ if [ -n "${SEMVER}" ]; then
808
+ docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
809
+ docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER}
810
+ docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
811
+ fi
708
812
docker manifest push --purge ${MANIFESTIMAGE}:latest || :
709
813
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest
710
814
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
@@ -717,14 +821,23 @@ pipeline {
717
821
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
718
822
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm
719
823
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
824
+ if [ -n "${SEMVER}" ]; then
825
+ docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
826
+ docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
827
+ docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm
828
+ docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
829
+ fi
720
830
docker manifest push --purge ${MANIFESTIMAGE}:latest
721
831
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
722
832
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
833
+ if [ -n "${SEMVER}" ]; then
834
+ docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER}
835
+ fi
723
836
done
724
837
'''
725
838
}
726
839
sh ''' #! /bin/bash
727
- for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
840
+ for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${ IMAGE}"; do
728
841
docker rmi \
729
842
${DELETEIMAGE}:amd64-${META_TAG} \
730
843
${DELETEIMAGE}:amd64-latest \
@@ -735,6 +848,12 @@ pipeline {
735
848
${DELETEIMAGE}:arm64v8-${META_TAG} \
736
849
${DELETEIMAGE}:arm64v8-latest \
737
850
${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
851
+ if [ -n "${SEMVER}" ]; then
852
+ docker rmi \
853
+ ${DELETEIMAGE}:amd64-${SEMVER} \
854
+ ${DELETEIMAGE}:arm32v7-${SEMVER} \
855
+ ${DELETEIMAGE}:arm64v8-${SEMVER} || :
856
+ fi
738
857
done
739
858
docker rmi \
740
859
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
0 commit comments