@@ -173,7 +173,7 @@ pipeline {
173173 env. GITLABIMAGE = ' registry.gitlab.com/linuxserver.io/' + env. LS_REPO + ' /' + env. CONTAINER_NAME
174174 env. QUAYIMAGE = ' quay.io/linuxserver.io/' + env. CONTAINER_NAME
175175 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
177177 } else {
178178 env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER
179179 }
@@ -196,7 +196,7 @@ pipeline {
196196 env. GITLABIMAGE = ' registry.gitlab.com/linuxserver.io/' + env. LS_REPO + ' /lsiodev-' + env. CONTAINER_NAME
197197 env. QUAYIMAGE = ' quay.io/linuxserver.io/lsiodev-' + env. CONTAINER_NAME
198198 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
200200 } else {
201201 env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA
202202 }
@@ -219,7 +219,7 @@ pipeline {
219219 env. GITLABIMAGE = ' registry.gitlab.com/linuxserver.io/' + env. LS_REPO + ' /lspipepr-' + env. CONTAINER_NAME
220220 env. QUAYIMAGE = ' quay.io/linuxserver.io/lspipepr-' + env. CONTAINER_NAME
221221 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
223223 } else {
224224 env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA + ' -pr-' + env. PULL_REQUEST
225225 }
@@ -525,44 +525,6 @@ pipeline {
525525 --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ VERSION_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
526526 }
527527 }
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-netbox/packages\" \
543- --label \" org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-netbox\" \
544- --label \" org.opencontainers.image.source=https://github.com/linuxserver/docker-netbox\" \
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=Netbox\" \
551- --label \" org.opencontainers.image.description=[Netbox](https://github.com/netbox-community/netbox) is an IP address management (IPAM) and data center infrastructure management (DCIM) tool. Initially conceived by the network engineering team at DigitalOcean, NetBox was developed specifically to address the needs of network and infrastructure engineers. It is intended to function as a domain-specific source of truth for network operations. \" \
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- }
566528 stage(' Build ARM64' ) {
567529 agent {
568530 label ' ARM64'
@@ -703,9 +665,7 @@ pipeline {
703665 set -e
704666 docker pull ghcr.io/linuxserver/ci:latest
705667 if [ "${MULTIARCH}" == "true" ]; then
706- docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
707668 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}
709669 docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
710670 fi
711671 docker run --rm \
@@ -808,58 +768,54 @@ pipeline {
808768 echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
809769 echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
810770 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}
813771 docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
814772 docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
815773 fi
816774 for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
817775 docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
818776 docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest
819777 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}
823778 docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
824779 docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest
825780 docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
826781 if [ -n "${SEMVER}" ]; then
827782 docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER}
828- docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${SEMVER}
829783 docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
830784 fi
831785 docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
832786 docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
833787 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}
837788 docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
838789 docker push ${MANIFESTIMAGE}:arm64v8-latest
839790 docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
840791 if [ -n "${SEMVER}" ]; then
841792 docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
842- docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER}
843793 docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
844794 fi
845795 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
848797 docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8
849798 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}
852800 docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
853801 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}
856803 docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
857804 if [ -n "${SEMVER}" ]; then
858805 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}
861807 docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
862808 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
863819 docker manifest push --purge ${MANIFESTIMAGE}:latest
864820 docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
865821 docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
0 commit comments