@@ -163,7 +163,7 @@ pipeline {
163163 env. GITLABIMAGE = ' registry.gitlab.com/linuxserver.io/' + env. LS_REPO + ' /' + env. CONTAINER_NAME
164164 env. QUAYIMAGE = ' quay.io/linuxserver.io/' + env. CONTAINER_NAME
165165 if (env. MULTIARCH == ' true' ) {
166- 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
166+ env. CI_TAGS = ' amd64-' + env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER + ' |arm64v8-' + env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER
167167 } else {
168168 env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER
169169 }
@@ -186,7 +186,7 @@ pipeline {
186186 env. GITLABIMAGE = ' registry.gitlab.com/linuxserver.io/' + env. LS_REPO + ' /lsiodev-' + env. CONTAINER_NAME
187187 env. QUAYIMAGE = ' quay.io/linuxserver.io/lsiodev-' + env. CONTAINER_NAME
188188 if (env. MULTIARCH == ' true' ) {
189- 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
189+ 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
190190 } else {
191191 env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA
192192 }
@@ -209,7 +209,7 @@ pipeline {
209209 env. GITLABIMAGE = ' registry.gitlab.com/linuxserver.io/' + env. LS_REPO + ' /lspipepr-' + env. CONTAINER_NAME
210210 env. QUAYIMAGE = ' quay.io/linuxserver.io/lspipepr-' + env. CONTAINER_NAME
211211 if (env. MULTIARCH == ' true' ) {
212- 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
212+ 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
213213 } else {
214214 env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA + ' -pr-' + env. PULL_REQUEST
215215 }
@@ -280,7 +280,7 @@ pipeline {
280280 echo "Jenkinsfile is up to date."
281281 fi
282282 # Stage 2 - Delete old templates
283- OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml"
283+ OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml Dockerfile.armhf "
284284 for i in ${OLD_TEMPLATES}; do
285285 if [[ -f "${i}" ]]; then
286286 TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
@@ -316,12 +316,13 @@ pipeline {
316316 mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
317317 mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
318318 cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || :
319+ cp --parents readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/ || :
319320 cd ${TEMPDIR}/repo/${LS_REPO}/
320321 if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then
321322 echo ".jenkins-external" >> .gitignore
322323 git add .gitignore
323324 fi
324- git add ${TEMPLATED_FILES}
325+ git add readme-vars.yml ${TEMPLATED_FILES}
325326 git commit -m 'Bot Updating Templated Files'
326327 git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
327328 echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
@@ -515,44 +516,6 @@ pipeline {
515516 --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ VERSION_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
516517 }
517518 }
518- stage(' Build ARMHF' ) {
519- agent {
520- label ' ARMHF'
521- }
522- steps {
523- echo " Running on node: ${ NODE_NAME} "
524- echo ' Logging into Github'
525- sh ''' #! /bin/bash
526- echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
527- '''
528- sh " sed -r -i 's|(^FROM .*)|\\ 1\\ n\\ nENV LSIO_FIRST_PARTY=true|g' Dockerfile.armhf"
529- sh " docker buildx build \
530- --label \" org.opencontainers.image.created=${ GITHUB_DATE} \" \
531- --label \" org.opencontainers.image.authors=linuxserver.io\" \
532- --label \" org.opencontainers.image.url=https://github.com/linuxserver/docker-mysql-workbench/packages\" \
533- --label \" org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-mysql-workbench\" \
534- --label \" org.opencontainers.image.source=https://github.com/linuxserver/docker-mysql-workbench\" \
535- --label \" org.opencontainers.image.version=${ EXT_RELEASE_CLEAN} -ls${ LS_TAG_NUMBER} \" \
536- --label \" org.opencontainers.image.revision=${ COMMIT_SHA} \" \
537- --label \" org.opencontainers.image.vendor=linuxserver.io\" \
538- --label \" org.opencontainers.image.licenses=GPL-3.0-only\" \
539- --label \" org.opencontainers.image.ref.name=${ COMMIT_SHA} \" \
540- --label \" org.opencontainers.image.title=Mysql-workbench\" \
541- --label \" org.opencontainers.image.description=[MySQL Workbench](https://www.mysql.com/products/workbench/) is a unified visual tool for database architects, developers, and DBAs. MySQL Workbench provides data modeling, SQL development, and comprehensive administration tools for server configuration, user administration, backup, and much more.\" \
542- --no-cache --pull -f Dockerfile.armhf -t ${ IMAGE} :arm32v7-${ META_TAG} --platform=linux/arm/v7 \
543- --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ VERSION_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
544- sh " docker tag ${ IMAGE} :arm32v7-${ META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${ COMMIT_SHA} -${ BUILD_NUMBER} "
545- retry(5 ) {
546- sh " docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${ COMMIT_SHA} -${ BUILD_NUMBER} "
547- }
548- sh ''' #! /bin/bash
549- containers=$(docker ps -aq)
550- if [[ -n "${containers}" ]]; then
551- docker stop ${containers}
552- fi
553- docker system prune -af --volumes || : '''
554- }
555- }
556519 stage(' Build ARM64' ) {
557520 agent {
558521 label ' ARM64'
@@ -693,9 +656,7 @@ pipeline {
693656 set -e
694657 docker pull ghcr.io/linuxserver/ci:latest
695658 if [ "${MULTIARCH}" == "true" ]; then
696- docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
697659 docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
698- docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
699660 docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
700661 fi
701662 docker run --rm \
@@ -798,58 +759,54 @@ pipeline {
798759 echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
799760 echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
800761 if [ "${CI}" == "false" ]; then
801- docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
802- docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
803762 docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
804763 docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
805764 fi
806765 for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
807766 docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
808767 docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest
809768 docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
810- docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
811- docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-latest
812- docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
813769 docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
814770 docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest
815771 docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
816772 if [ -n "${SEMVER}" ]; then
817773 docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER}
818- docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${SEMVER}
819774 docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
820775 fi
821776 docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
822777 docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
823778 docker push ${MANIFESTIMAGE}:amd64-latest
824- docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
825- docker push ${MANIFESTIMAGE}:arm32v7-latest
826- docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
827779 docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
828780 docker push ${MANIFESTIMAGE}:arm64v8-latest
829781 docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
830782 if [ -n "${SEMVER}" ]; then
831783 docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
832- docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER}
833784 docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
834785 fi
835786 docker manifest push --purge ${MANIFESTIMAGE}:latest || :
836- docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest
837- docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
787+ docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest
838788 docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8
839789 docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
840- docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
841- docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
790+ docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
842791 docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
843792 docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || :
844- docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
845- docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm
793+ docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
846794 docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
847795 if [ -n "${SEMVER}" ]; then
848796 docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
849- docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
850- docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm
797+ docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
851798 docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
852799 fi
800+ token=$(curl -sX GET "https://ghcr.io/token?scope=repository%3Alinuxserver%2F${CONTAINER_NAME}%3Apull" | jq -r '.token')
801+ digest=$(curl -s \
802+ --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
803+ --header "Authorization: Bearer ${token}" \
804+ "https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-latest")
805+ if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then
806+ docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest || :
807+ docker manifest create ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:amd64-latest
808+ docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest
809+ fi
853810 docker manifest push --purge ${MANIFESTIMAGE}:latest
854811 docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
855812 docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
0 commit comments