@@ -275,7 +275,7 @@ pipeline {
275275 # ${TEMPDIR}/unraid/docker-templates: Cloned docker-templates repo to check for logos
276276 # ${TEMPDIR}/unraid/templates: Cloned templates repo for commiting unraid template changes and pushing back to Github
277277 git clone --branch master --depth 1 https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/docker-${CONTAINER_NAME}
278- docker run --rm -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/tmp -e LOCAL=true ghcr.io/linuxserver/jenkins-builder:latest
278+ docker run --rm -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/tmp -e LOCAL=true -e PUID=$(id -u) -e PGID=$(id -g) ghcr.io/linuxserver/jenkins-builder:latest
279279 echo "Starting Stage 1 - Jenkinsfile update"
280280 if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
281281 mkdir -p ${TEMPDIR}/repo
@@ -295,7 +295,7 @@ pipeline {
295295 echo "Jenkinsfile is up to date."
296296 fi
297297 echo "Starting Stage 2 - Delete old templates"
298- 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 "
298+ 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"
299299 for i in ${OLD_TEMPLATES}; do
300300 if [[ -f "${i}" ]]; then
301301 TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
@@ -381,7 +381,9 @@ pipeline {
381381 echo "Updating Unraid template"
382382 cd ${TEMPDIR}/unraid/templates/
383383 GH_TEMPLATES_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||')
384- if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
384+ if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list && [[ -f ${TEMPDIR}/unraid/templates/unraid/deprecated/${CONTAINER_NAME}.xml ]]; then
385+ echo "Image is on the ignore list, and already in the deprecation folder."
386+ elif grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
385387 echo "Image is on the ignore list, marking Unraid template as deprecated"
386388 cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
387389 git add -u unraid/${CONTAINER_NAME}.xml
@@ -523,6 +525,7 @@ pipeline {
523525 --label \" org.opencontainers.image.title=Code-server\" \
524526 --label \" org.opencontainers.image.description=[Code-server](https://coder.com) is VS Code running on a remote server, accessible through the browser. - Code on your Chromebook, tablet, and laptop with a consistent dev environment. - If you have a Windows or Mac workstation, more easily develop for Linux. - Take advantage of large cloud servers to speed up tests, compilations, downloads, and more. - Preserve battery life when you're on the go. - All intensive computation runs on your server. - You're no longer running excess instances of Chrome.\" \
525527 --no-cache --pull -t ${ IMAGE} :${ META_TAG} --platform=linux/amd64 \
528+ --provenance=false --sbom=false \
526529 --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ VERSION_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
527530 }
528531 }
@@ -554,6 +557,7 @@ pipeline {
554557 --label \" org.opencontainers.image.title=Code-server\" \
555558 --label \" org.opencontainers.image.description=[Code-server](https://coder.com) is VS Code running on a remote server, accessible through the browser. - Code on your Chromebook, tablet, and laptop with a consistent dev environment. - If you have a Windows or Mac workstation, more easily develop for Linux. - Take advantage of large cloud servers to speed up tests, compilations, downloads, and more. - Preserve battery life when you're on the go. - All intensive computation runs on your server. - You're no longer running excess instances of Chrome.\" \
556559 --no-cache --pull -t ${ IMAGE} :amd64-${ META_TAG} --platform=linux/amd64 \
560+ --provenance=false --sbom=false \
557561 --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ VERSION_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
558562 }
559563 }
@@ -582,6 +586,7 @@ pipeline {
582586 --label \" org.opencontainers.image.title=Code-server\" \
583587 --label \" org.opencontainers.image.description=[Code-server](https://coder.com) is VS Code running on a remote server, accessible through the browser. - Code on your Chromebook, tablet, and laptop with a consistent dev environment. - If you have a Windows or Mac workstation, more easily develop for Linux. - Take advantage of large cloud servers to speed up tests, compilations, downloads, and more. - Preserve battery life when you're on the go. - All intensive computation runs on your server. - You're no longer running excess instances of Chrome.\" \
584588 --no-cache --pull -f Dockerfile.aarch64 -t ${ IMAGE} :arm64v8-${ META_TAG} --platform=linux/arm64 \
589+ --provenance=false --sbom=false \
585590 --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ VERSION_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
586591 sh " docker tag ${ IMAGE} :arm64v8-${ META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${ COMMIT_SHA} -${ BUILD_NUMBER} "
587592 retry(5 ) {
@@ -608,7 +613,7 @@ pipeline {
608613 sh ''' #! /bin/bash
609614 set -e
610615 TEMPDIR=$(mktemp -d)
611- if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false " ]; then
616+ if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" != "true " ]; then
612617 LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG}
613618 else
614619 LOCAL_CONTAINER=${IMAGE}:${META_TAG}
@@ -705,7 +710,7 @@ pipeline {
705710 --shm-size=1gb \
706711 -v /var/run/docker.sock:/var/run/docker.sock \
707712 -e IMAGE=\" ${IMAGE}\" \
708- -e DELAY_START =\" ${CI_DELAY}\" \
713+ -e DOCKER_LOGS_TIMEOUT =\" ${CI_DELAY}\" \
709714 -e TAGS=\" ${CI_TAGS}\" \
710715 -e META_TAG=\" ${META_TAG}\" \
711716 -e PORT=\" ${CI_PORT}\" \
@@ -813,35 +818,13 @@ pipeline {
813818 docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
814819 docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
815820 fi
816- docker manifest push --purge ${MANIFESTIMAGE}:latest || :
817- docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest
818- docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8
819- docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
820- docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
821- docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
822- docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || :
823- docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
824- docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
825- if [ -n "${SEMVER}" ]; then
826- docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
827- docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
828- docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
829- fi
830- token=$(curl -sX GET "https://ghcr.io/token?scope=repository%3Alinuxserver%2F${CONTAINER_NAME}%3Apull" | jq -r '.token')
831- digest=$(curl -s \
832- --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
833- --header "Authorization: Bearer ${token}" \
834- "https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-latest")
835- if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then
836- docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest || :
837- docker manifest create ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:amd64-latest
838- docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest
839- fi
840- docker manifest push --purge ${MANIFESTIMAGE}:latest
841- docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
842- docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
821+ done
822+ for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
823+ docker buildx imagetools create -t ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest
824+ docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
825+ docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
843826 if [ -n "${SEMVER}" ]; then
844- docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER}
827+ docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
845828 fi
846829 done
847830 '''
0 commit comments