Skip to content
This repository was archived by the owner on Jan 3, 2025. It is now read-only.

Commit 3c648d2

Browse files
Bot Updating Templated Files
1 parent ea01221 commit 3c648d2

File tree

1 file changed

+120
-13
lines changed

1 file changed

+120
-13
lines changed

Jenkinsfile

Lines changed: 120 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ pipeline {
1616
GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
1717
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
1818
GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
19+
SCARF_TOKEN=credentials('scarf_api_key')
1920
EXT_GIT_BRANCH = 'master'
2021
EXT_USER = 'magne4000'
2122
EXT_REPO = 'quassel-webserver'
@@ -58,7 +59,7 @@ pipeline {
5859
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT
5960
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/'
6061
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'
6263
}
6364
script{
6465
env.LS_RELEASE_NUMBER = sh(
@@ -126,6 +127,23 @@ pipeline {
126127
env.EXT_RELEASE_CLEAN = sh(
127128
script: '''echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g' ''',
128129
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}")
129147
}
130148
}
131149
}
@@ -140,6 +158,7 @@ pipeline {
140158
env.IMAGE = env.DOCKERHUB_IMAGE
141159
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/' + env.CONTAINER_NAME
142160
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
161+
env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME
143162
if (env.MULTIARCH == 'true') {
144163
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
145164
} else {
@@ -162,6 +181,7 @@ pipeline {
162181
env.IMAGE = env.DEV_DOCKERHUB_IMAGE
163182
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lsiodev-' + env.CONTAINER_NAME
164183
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
165185
if (env.MULTIARCH == 'true') {
166186
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
167187
} else {
@@ -184,6 +204,7 @@ pipeline {
184204
env.IMAGE = env.PR_DOCKERHUB_IMAGE
185205
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lspipepr-' + env.CONTAINER_NAME
186206
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
187208
if (env.MULTIARCH == 'true') {
188209
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
189210
} else {
@@ -270,7 +291,6 @@ pipeline {
270291
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
271292
cd ${TEMPDIR}/repo/${LS_REPO}
272293
git checkout -f master
273-
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
274294
for i in ${TEMPLATES_TO_DELETE}; do
275295
git rm "${i}"
276296
done
@@ -380,13 +400,57 @@ pipeline {
380400
"visibility":"public"}' '''
381401
}
382402
}
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+
}
383445
/* ###############
384446
Build Container
385447
############### */
386448
// Build Docker container for push to LS Repo
387449
stage('Build-Single') {
388450
when {
389-
environment name: 'MULTIARCH', value: 'false'
451+
expression {
452+
env.MULTIARCH == 'false' || params.PACKAGE_CHECK == 'true'
453+
}
390454
environment name: 'EXIT_STATUS', value: ''
391455
}
392456
steps {
@@ -411,7 +475,10 @@ pipeline {
411475
// Build MultiArch Docker containers for push to LS Repo
412476
stage('Build-Multi') {
413477
when {
414-
environment name: 'MULTIARCH', value: 'true'
478+
allOf {
479+
environment name: 'MULTIARCH', value: 'true'
480+
expression { params.PACKAGE_CHECK == 'false' }
481+
}
415482
environment name: 'EXIT_STATUS', value: ''
416483
}
417484
parallel {
@@ -516,7 +583,7 @@ pipeline {
516583
sh '''#! /bin/bash
517584
set -e
518585
TEMPDIR=$(mktemp -d)
519-
if [ "${MULTIARCH}" == "true" ]; then
586+
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
520587
LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG}
521588
else
522589
LOCAL_CONTAINER=${IMAGE}:${META_TAG}
@@ -531,6 +598,15 @@ pipeline {
531598
apt list -qq --installed | sed "s#/.*now ##g" | cut -d" " -f1 > /tmp/package_versions.txt && \
532599
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
533600
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'
534610
fi
535611
NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
536612
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 {
568644
steps {
569645
sh '''#! /bin/bash
570646
echo "Packages were updated. Cleaning up the image and exiting."
571-
if [ "${MULTIARCH}" == "true" ]; then
647+
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
572648
docker rmi ${IMAGE}:amd64-${META_TAG}
573649
else
574650
docker rmi ${IMAGE}:${META_TAG}
@@ -592,7 +668,7 @@ pipeline {
592668
steps {
593669
sh '''#! /bin/bash
594670
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
596672
docker rmi ${IMAGE}:amd64-${META_TAG}
597673
else
598674
docker rmi ${IMAGE}:${META_TAG}
@@ -667,6 +743,12 @@ pipeline {
667743
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
668744
usernameVariable: 'DOCKERUSER',
669745
passwordVariable: 'DOCKERPASS'
746+
],
747+
[
748+
$class: 'UsernamePasswordMultiBinding',
749+
credentialsId: 'Quay.io-Robot',
750+
usernameVariable: 'QUAYUSER',
751+
passwordVariable: 'QUAYPASS'
670752
]
671753
]) {
672754
retry(5) {
@@ -675,22 +757,26 @@ pipeline {
675757
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
676758
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
677759
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
679762
docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
680763
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest
681764
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG}
765+
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${SEMVER}
682766
docker push ${PUSHIMAGE}:latest
683767
docker push ${PUSHIMAGE}:${META_TAG}
684768
docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG}
769+
docker push ${PUSHIMAGE}:${SEMVER}
685770
done
686771
'''
687772
}
688773
sh '''#! /bin/bash
689-
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
774+
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
690775
docker rmi \
691776
${DELETEIMAGE}:${META_TAG} \
692777
${DELETEIMAGE}:${EXT_RELEASE_TAG} \
693-
${DELETEIMAGE}:latest || :
778+
${DELETEIMAGE}:latest \
779+
${DELETEIMAGE}:${SEMVER} || :
694780
done
695781
'''
696782
}
@@ -709,6 +795,12 @@ pipeline {
709795
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
710796
usernameVariable: 'DOCKERUSER',
711797
passwordVariable: 'DOCKERPASS'
798+
],
799+
[
800+
$class: 'UsernamePasswordMultiBinding',
801+
credentialsId: 'Quay.io-Robot',
802+
usernameVariable: 'QUAYUSER',
803+
passwordVariable: 'QUAYPASS'
712804
]
713805
]) {
714806
retry(5) {
@@ -717,13 +809,14 @@ pipeline {
717809
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
718810
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
719811
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
812+
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
720813
if [ "${CI}" == "false" ]; then
721814
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
722815
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
723816
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
724817
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
725818
fi
726-
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}"; do
819+
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
727820
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
728821
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
729822
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
@@ -733,6 +826,9 @@ pipeline {
733826
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
734827
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
735828
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}
736832
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
737833
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
738834
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
@@ -742,6 +838,9 @@ pipeline {
742838
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
743839
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
744840
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}
745844
docker manifest push --purge ${MANIFESTIMAGE}:latest || :
746845
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest
747846
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
@@ -754,24 +853,32 @@ pipeline {
754853
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
755854
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm
756855
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
757860
docker manifest push --purge ${MANIFESTIMAGE}:latest
758861
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
759862
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
863+
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER}
760864
done
761865
'''
762866
}
763867
sh '''#! /bin/bash
764-
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
868+
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
765869
docker rmi \
766870
${DELETEIMAGE}:amd64-${META_TAG} \
767871
${DELETEIMAGE}:amd64-latest \
768872
${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
873+
${DELETEIMAGE}:amd64-${SEMVER} \
769874
${DELETEIMAGE}:arm32v7-${META_TAG} \
770875
${DELETEIMAGE}:arm32v7-latest \
771876
${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
877+
${DELETEIMAGE}:arm32v7-${SEMVER} \
772878
${DELETEIMAGE}:arm64v8-${META_TAG} \
773879
${DELETEIMAGE}:arm64v8-latest \
774-
${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
880+
${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} \
881+
${DELETEIMAGE}:arm64v8-${SEMVER} || :
775882
done
776883
docker rmi \
777884
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \

0 commit comments

Comments
 (0)