@@ -40,8 +40,7 @@ pipeline {
4040 if [[ -n "${containers}" ]]; then
4141 docker stop ${containers}
4242 fi
43- docker system prune -af --volumes || :
44- '''
43+ docker system prune -af --volumes || : '''
4544 script{
4645 env. EXIT_STATUS = ' '
4746 env. IG_RELEASE = sh(
@@ -93,7 +92,7 @@ pipeline {
9392 steps{
9493 script{
9594 env. PACKAGE_TAG = sh(
96- script : ''' #! /bin/bash
95+ script : ''' #!/bin/bash
9796 if [ -e package_versions.txt ] ; then
9897 cat package_versions.txt | md5sum | cut -c1-8
9998 else
@@ -201,12 +200,12 @@ pipeline {
201200 script{
202201 env. GITHUBIMAGE = ' ghcr.io/' + env. IG_USER + ' /igpipepr-' + env. CONTAINER_NAME
203202 if (env. MULTIARCH == ' true' ) {
204- env. CI_TAGS = ' amd64-' + 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
203+ 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
205204 } else {
206- env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
205+ env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev- ' + env . COMMIT_SHA + ' - pr-' + env. PULL_REQUEST
207206 }
208- env. VERSION_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
209- env. META_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
207+ env. VERSION_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev- ' + env . COMMIT_SHA + ' - pr-' + env. PULL_REQUEST
208+ env. META_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev- ' + env . COMMIT_SHA + ' - pr-' + env. PULL_REQUEST
210209 env. EXT_RELEASE_TAG = ' version-' + env. EXT_RELEASE_CLEAN
211210 env. CODE_URL = ' https://github.com/' + env. IG_USER + ' /' + env. IG_REPO + ' /pull/' + env. PULL_REQUEST
212211 }
@@ -262,7 +261,7 @@ pipeline {
262261 # ${TEMPDIR}/unraid/docker-templates: Cloned docker-templates repo to check for logos
263262 # ${TEMPDIR}/unraid/templates: Cloned templates repo for commiting unraid template changes and pushing back to Github
264263 git clone --branch main --depth 1 https://ImageGeniusCI:${GITHUB_TOKEN}@github.com/${IG_USER}/${IG_REPO}.git ${TEMPDIR}/docker-${CONTAINER_NAME}
265- docker run --rm -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/tmp -e LOCAL=true ghcr.io/imagegenius/jenkins-builder:latest
264+ docker run --rm -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/tmp -e LOCAL=true -e PUID=$(id -u) -e PGID=$(id -g) ghcr.io/imagegenius/jenkins-builder:latest
266265 echo "Starting Stage 1 - Jenkinsfile update"
267266 if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
268267 mkdir -p ${TEMPDIR}/repo
@@ -282,7 +281,7 @@ pipeline {
282281 echo "Jenkinsfile is up to date."
283282 fi
284283 echo "Starting Stage 2 - Delete old templates"
285- 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 "
284+ 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"
286285 for i in ${OLD_TEMPLATES}; do
287286 if [[ -f "${i}" ]]; then
288287 TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
@@ -347,7 +346,9 @@ pipeline {
347346 echo "Updating Unraid template"
348347 cd ${TEMPDIR}/unraid/templates/
349348 GH_TEMPLATES_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||')
350- if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
349+ if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list && [[ -f ${TEMPDIR}/unraid/templates/unraid/deprecated/${CONTAINER_NAME}.xml ]]; then
350+ echo "Image is on the ignore list, and already in the deprecation folder."
351+ elif grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
351352 echo "Image is on the ignore list, marking Unraid template as deprecated"
352353 cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
353354 git add -u unraid/${CONTAINER_NAME}.xml
@@ -437,6 +438,7 @@ pipeline {
437438 --label \" org.opencontainers.image.title=Maintenance\" \
438439 --label \" org.opencontainers.image.description=Maintenance is a minimal nginx docker image with a soul purpose to be a maintenance page for when your main webserver is down\" \
439440 --no-cache --pull -t ${ GITHUBIMAGE} :${ META_TAG} --platform=linux/amd64 \
441+ --provenance=false --sbom=false \
440442 --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ VERSION_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
441443 }
442444 }
@@ -466,6 +468,7 @@ pipeline {
466468 --label \" org.opencontainers.image.title=Maintenance\" \
467469 --label \" org.opencontainers.image.description=Maintenance is a minimal nginx docker image with a soul purpose to be a maintenance page for when your main webserver is down\" \
468470 --no-cache --pull -t ${ GITHUBIMAGE} :amd64-${ META_TAG} --platform=linux/amd64 \
471+ --provenance=false --sbom=false \
469472 --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ VERSION_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
470473 }
471474 }
@@ -492,6 +495,7 @@ pipeline {
492495 --label \" org.opencontainers.image.title=Maintenance\" \
493496 --label \" org.opencontainers.image.description=Maintenance is a minimal nginx docker image with a soul purpose to be a maintenance page for when your main webserver is down\" \
494497 --no-cache --pull -f Dockerfile.aarch64 -t ${ GITHUBIMAGE} :arm64v8-${ META_TAG} --platform=linux/arm64 \
498+ --provenance=false --sbom=false \
495499 --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ VERSION_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
496500 sh " docker tag ${ GITHUBIMAGE} :arm64v8-${ META_TAG} ghcr.io/imagegenius/igdev-buildcache:arm64v8-${ COMMIT_SHA} -${ BUILD_NUMBER} "
497501 retry(5 ) {
@@ -518,7 +522,7 @@ pipeline {
518522 sh ''' #! /bin/bash
519523 set -e
520524 TEMPDIR=$(mktemp -d)
521- if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false " ]; then
525+ if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" != "true " ]; then
522526 LOCAL_CONTAINER=${GITHUBIMAGE}:amd64-${META_TAG}
523527 else
524528 LOCAL_CONTAINER=${GITHUBIMAGE}:${META_TAG}
@@ -616,7 +620,6 @@ pipeline {
616620 -v /var/run/docker.sock:/var/run/docker.sock \
617621 -e IMAGE=\" ${GITHUBIMAGE}\" \
618622 -e CONTAINER=\" ${CONTAINER_NAME}\" \
619- -e DELAY_START=\" ${CI_DELAY:-30}\" \
620623 -e TAGS=\" ${CI_TAGS}\" \
621624 -e META_TAG=\" ${META_TAG}\" \
622625 -e PORT=\" ${CI_PORT}\" \
@@ -679,10 +682,8 @@ pipeline {
679682 docker pull ghcr.io/imagegenius/igdev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
680683 docker tag ghcr.io/imagegenius/igdev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${GITHUBIMAGE}:arm64v8-${META_TAG}
681684 fi
682- docker tag ${GITHUBIMAGE}:amd64-${META_TAG} ${GITHUBIMAGE}:amd64-${META_TAG}
683685 docker tag ${GITHUBIMAGE}:amd64-${META_TAG} ${GITHUBIMAGE}:amd64-latest
684686 docker tag ${GITHUBIMAGE}:amd64-${META_TAG} ${GITHUBIMAGE}:amd64-${EXT_RELEASE_TAG}
685- docker tag ${GITHUBIMAGE}:arm64v8-${META_TAG} ${GITHUBIMAGE}:arm64v8-${META_TAG}
686687 docker tag ${GITHUBIMAGE}:arm64v8-${META_TAG} ${GITHUBIMAGE}:arm64v8-latest
687688 docker tag ${GITHUBIMAGE}:arm64v8-${META_TAG} ${GITHUBIMAGE}:arm64v8-${EXT_RELEASE_TAG}
688689 if [ -n "${SEMVER}" ]; then
@@ -699,35 +700,11 @@ pipeline {
699700 docker push ${GITHUBIMAGE}:amd64-${SEMVER}
700701 docker push ${GITHUBIMAGE}:arm64v8-${SEMVER}
701702 fi
702- docker manifest push --purge ${GITHUBIMAGE}:latest || :
703- docker manifest create ${GITHUBIMAGE}:latest ${GITHUBIMAGE}:amd64-latest ${GITHUBIMAGE}:arm64v8-latest
704- docker manifest annotate ${GITHUBIMAGE}:latest ${GITHUBIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8
705- docker manifest push --purge ${GITHUBIMAGE}:${META_TAG} || :
706- docker manifest create ${GITHUBIMAGE}:${META_TAG} ${GITHUBIMAGE}:amd64-${META_TAG} ${GITHUBIMAGE}:arm64v8-${META_TAG}
707- docker manifest annotate ${GITHUBIMAGE}:${META_TAG} ${GITHUBIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
708- docker manifest push --purge ${GITHUBIMAGE}:${EXT_RELEASE_TAG} || :
709- docker manifest create ${GITHUBIMAGE}:${EXT_RELEASE_TAG} ${GITHUBIMAGE}:amd64-${EXT_RELEASE_TAG} ${GITHUBIMAGE}:arm64v8-${EXT_RELEASE_TAG}
710- docker manifest annotate ${GITHUBIMAGE}:${EXT_RELEASE_TAG} ${GITHUBIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
711- if [ -n "${SEMVER}" ]; then
712- docker manifest push --purge ${GITHUBIMAGE}:${SEMVER} || :
713- docker manifest create ${GITHUBIMAGE}:${SEMVER} ${GITHUBIMAGE}:amd64-${SEMVER} ${GITHUBIMAGE}:arm64v8-${SEMVER}
714- docker manifest annotate ${GITHUBIMAGE}:${SEMVER} ${GITHUBIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
715- fi
716- token=$(curl -sX GET "https://ghcr.io/token?scope=repository%3Aimagegenius%2F${CONTAINER_NAME}%3Apull" | jq -r '.token')
717- digest=$(curl -s \
718- --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
719- --header "Authorization: Bearer ${token}" \
720- "https://ghcr.io/v2/imagegenius/${CONTAINER_NAME}/manifests/arm32v7-latest")
721- if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then
722- docker manifest push --purge ${GITHUBIMAGE}:arm32v7-latest || :
723- docker manifest create ${GITHUBIMAGE}:arm32v7-latest ${GITHUBIMAGE}:amd64-latest
724- docker manifest push --purge ${GITHUBIMAGE}:arm32v7-latest
725- fi
726- docker manifest push --purge ${GITHUBIMAGE}:latest
727- docker manifest push --purge ${GITHUBIMAGE}:${META_TAG}
728- docker manifest push --purge ${GITHUBIMAGE}:${EXT_RELEASE_TAG}
703+ docker buildx imagetools create -t ${GITHUBIMAGE}:latest ${GITHUBIMAGE}:amd64-latest ${GITHUBIMAGE}:arm64v8-latest
704+ docker buildx imagetools create -t ${GITHUBIMAGE}:${META_TAG} ${GITHUBIMAGE}:amd64-${META_TAG} ${GITHUBIMAGE}:arm64v8-${META_TAG}
705+ docker buildx imagetools create -t ${GITHUBIMAGE}:${EXT_RELEASE_TAG} ${GITHUBIMAGE}:amd64-${EXT_RELEASE_TAG} ${GITHUBIMAGE}:arm64v8-${EXT_RELEASE_TAG}
729706 if [ -n "${SEMVER}" ]; then
730- docker manifest push --purge ${GITHUBIMAGE}:${SEMVER}
707+ docker buildx imagetools create -t ${GITHUBIMAGE}:${SEMVER} ${GITHUBIMAGE}:amd64-${SEMVER} ${GITHUBIMAGE}:arm64v8-${SEMVER}
731708 fi
732709 '''
733710 }
0 commit comments