@@ -173,7 +173,7 @@ pipeline {
173
173
env. GITLABIMAGE = ' registry.gitlab.com/linuxserver.io/' + env. LS_REPO + ' /' + env. CONTAINER_NAME
174
174
env. QUAYIMAGE = ' quay.io/linuxserver.io/' + env. CONTAINER_NAME
175
175
if (env. MULTIARCH == ' true' ) {
176
- 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
176
+ env. CI_TAGS = ' amd64-' + env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER + ' |arm64v8-' + env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER
177
177
} else {
178
178
env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER
179
179
}
@@ -196,7 +196,7 @@ pipeline {
196
196
env. GITLABIMAGE = ' registry.gitlab.com/linuxserver.io/' + env. LS_REPO + ' /lsiodev-' + env. CONTAINER_NAME
197
197
env. QUAYIMAGE = ' quay.io/linuxserver.io/lsiodev-' + env. CONTAINER_NAME
198
198
if (env. MULTIARCH == ' true' ) {
199
- 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
199
+ env. CI_TAGS = ' amd64-' + 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
200
200
} else {
201
201
env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA
202
202
}
@@ -219,7 +219,7 @@ pipeline {
219
219
env. GITLABIMAGE = ' registry.gitlab.com/linuxserver.io/' + env. LS_REPO + ' /lspipepr-' + env. CONTAINER_NAME
220
220
env. QUAYIMAGE = ' quay.io/linuxserver.io/lspipepr-' + env. CONTAINER_NAME
221
221
if (env. MULTIARCH == ' true' ) {
222
- env. CI_TAGS = ' amd64-' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA + ' -pr-' + env. PULL_REQUEST + ' |arm32v7- ' + env . EXT_RELEASE_CLEAN + ' -pkg- ' + env . PACKAGE_TAG + ' -dev- ' + env . COMMIT_SHA + ' -pr- ' + env . PULL_REQUEST + ' | arm64v8-' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA + ' -pr-' + env. PULL_REQUEST
222
+ env. CI_TAGS = ' amd64-' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA + ' -pr-' + env. PULL_REQUEST + ' |arm64v8-' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA + ' -pr-' + env. PULL_REQUEST
223
223
} else {
224
224
env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA + ' -pr-' + env. PULL_REQUEST
225
225
}
@@ -525,44 +525,6 @@ pipeline {
525
525
--build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ VERSION_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
526
526
}
527
527
}
528
- stage(' Build ARMHF' ) {
529
- agent {
530
- label ' ARMHF'
531
- }
532
- steps {
533
- echo " Running on node: ${ NODE_NAME} "
534
- echo ' Logging into Github'
535
- sh ''' #! /bin/bash
536
- echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
537
- '''
538
- sh " sed -r -i 's|(^FROM .*)|\\ 1\\ n\\ nENV LSIO_FIRST_PARTY=true|g' Dockerfile.armhf"
539
- sh " docker buildx build \
540
- --label \" org.opencontainers.image.created=${ GITHUB_DATE} \" \
541
- --label \" org.opencontainers.image.authors=linuxserver.io\" \
542
- --label \" org.opencontainers.image.url=https://github.com/linuxserver/docker-xbackbone/packages\" \
543
- --label \" org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-xbackbone\" \
544
- --label \" org.opencontainers.image.source=https://github.com/linuxserver/docker-xbackbone\" \
545
- --label \" org.opencontainers.image.version=${ EXT_RELEASE_CLEAN} -ls${ LS_TAG_NUMBER} \" \
546
- --label \" org.opencontainers.image.revision=${ COMMIT_SHA} \" \
547
- --label \" org.opencontainers.image.vendor=linuxserver.io\" \
548
- --label \" org.opencontainers.image.licenses=GPL-3.0-only\" \
549
- --label \" org.opencontainers.image.ref.name=${ COMMIT_SHA} \" \
550
- --label \" org.opencontainers.image.title=Xbackbone\" \
551
- --label \" org.opencontainers.image.description=[Xbackbone](https://github.com/SergiX44/XBackBone) is a simple, self-hosted, lightweight PHP file manager that support the instant sharing tool ShareX and *NIX systems. It supports uploading and displaying images, GIF, video, code, formatted text, and file downloading and uploading. Also have a web UI with multi user management, past uploads history and search support. \" \
552
- --no-cache --pull -f Dockerfile.armhf -t ${ IMAGE} :arm32v7-${ META_TAG} --platform=linux/arm/v7 \
553
- --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ VERSION_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
554
- sh " docker tag ${ IMAGE} :arm32v7-${ META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${ COMMIT_SHA} -${ BUILD_NUMBER} "
555
- retry(5 ) {
556
- sh " docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${ COMMIT_SHA} -${ BUILD_NUMBER} "
557
- }
558
- sh ''' #! /bin/bash
559
- containers=$(docker ps -aq)
560
- if [[ -n "${containers}" ]]; then
561
- docker stop ${containers}
562
- fi
563
- docker system prune -af --volumes || : '''
564
- }
565
- }
566
528
stage(' Build ARM64' ) {
567
529
agent {
568
530
label ' ARM64'
@@ -703,9 +665,7 @@ pipeline {
703
665
set -e
704
666
docker pull ghcr.io/linuxserver/ci:latest
705
667
if [ "${MULTIARCH}" == "true" ]; then
706
- docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
707
668
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
708
- docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
709
669
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
710
670
fi
711
671
docker run --rm \
@@ -808,58 +768,54 @@ pipeline {
808
768
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
809
769
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
810
770
if [ "${CI}" == "false" ]; then
811
- docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
812
- docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
813
771
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
814
772
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
815
773
fi
816
774
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
817
775
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
818
776
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest
819
777
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
820
- docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
821
- docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-latest
822
- docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
823
778
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
824
779
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest
825
780
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
826
781
if [ -n "${SEMVER}" ]; then
827
782
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER}
828
- docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${SEMVER}
829
783
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
830
784
fi
831
785
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
832
786
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
833
787
docker push ${MANIFESTIMAGE}:amd64-latest
834
- docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
835
- docker push ${MANIFESTIMAGE}:arm32v7-latest
836
- docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
837
788
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
838
789
docker push ${MANIFESTIMAGE}:arm64v8-latest
839
790
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
840
791
if [ -n "${SEMVER}" ]; then
841
792
docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
842
- docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER}
843
793
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
844
794
fi
845
795
docker manifest push --purge ${MANIFESTIMAGE}:latest || :
846
- docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest
847
- docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
796
+ docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest
848
797
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8
849
798
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
850
- docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
851
- docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
799
+ docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
852
800
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
853
801
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || :
854
- docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
855
- docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm
802
+ docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
856
803
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
857
804
if [ -n "${SEMVER}" ]; then
858
805
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
859
- docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
860
- docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm
806
+ docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
861
807
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
862
808
fi
809
+ token=$(curl -sX GET "https://ghcr.io/token?scope=repository%3Alinuxserver%2F${CONTAINER_NAME}%3Apull" | jq -r '.token')
810
+ digest=$(curl -s \
811
+ --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
812
+ --header "Authorization: Bearer ${token}" \
813
+ "https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-latest")
814
+ if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then
815
+ docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest || :
816
+ docker manifest create ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:amd64-latest
817
+ docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest
818
+ fi
863
819
docker manifest push --purge ${MANIFESTIMAGE}:latest
864
820
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
865
821
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
0 commit comments