From 91044234a780cf65b377c844d48cacd41b7fbdd0 Mon Sep 17 00:00:00 2001 From: TheSpad Date: Wed, 10 May 2023 15:24:43 +0100 Subject: [PATCH] Initial release --- Dockerfile | 32 +++++-------- Dockerfile.aarch64 | 37 +++++---------- Dockerfile.armhf | 106 ----------------------------------------- Jenkinsfile | 116 +++++++++++++-------------------------------- jenkins-vars.yml | 3 +- 5 files changed, 60 insertions(+), 234 deletions(-) delete mode 100644 Dockerfile.armhf diff --git a/Dockerfile b/Dockerfile index 09c97b3b..354a6fa3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,42 +1,36 @@ # syntax=docker/dockerfile:1 -FROM alpine:3.16 as rootfs-stage +FROM alpine:3.17 as rootfs-stage # environment -ENV REL=v3.17 +ENV ROOTFS=/root-out +ENV REL=v3.18 ENV ARCH=x86_64 ENV MIRROR=http://dl-cdn.alpinelinux.org/alpine ENV PACKAGES=alpine-baselayout,\ alpine-keys,\ apk-tools,\ busybox,\ -libc-utils,\ -xz +libc-utils # install packages RUN \ apk add --no-cache \ bash \ - curl \ - tzdata \ xz -# fetch builder script from gliderlabs +# build rootfs RUN \ - curl -o \ - /mkimage-alpine.bash -L \ - https://raw.githubusercontent.com/gliderlabs/docker-alpine/master/builder/scripts/mkimage-alpine.bash && \ - chmod +x \ - /mkimage-alpine.bash && \ - ./mkimage-alpine.bash && \ - mkdir /root-out && \ - tar xf \ - /rootfs.tar.xz -C \ - /root-out && \ + mkdir -p "$ROOTFS/etc/apk" && \ + { \ + echo "$MIRROR/$REL/main"; \ + echo "$MIRROR/$REL/community"; \ + } > "$ROOTFS/etc/apk/repositories" && \ + apk --root "$ROOTFS" --no-cache --keys-dir /etc/apk/keys add --arch $ARCH --initdb ${PACKAGES//,/ } && \ sed -i -e 's/^root::/root:!:/' /root-out/etc/shadow # set version for s6 overlay -ARG S6_OVERLAY_VERSION="3.1.2.1" +ARG S6_OVERLAY_VERSION="3.1.5.0" ARG S6_OVERLAY_ARCH="x86_64" # add s6 overlay @@ -80,7 +74,7 @@ RUN \ curl \ jq \ netcat-openbsd \ - procps \ + procps-ng \ shadow \ tzdata && \ echo "**** create abc user and make our folders ****" && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 7bfd122d..f6bb1ddd 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,42 +1,36 @@ # syntax=docker/dockerfile:1 -FROM alpine:3.16 as rootfs-stage +FROM alpine:3.17 as rootfs-stage # environment -ENV REL=v3.17 +ENV ROOTFS=/root-out +ENV REL=v3.18 ENV ARCH=aarch64 ENV MIRROR=http://dl-cdn.alpinelinux.org/alpine ENV PACKAGES=alpine-baselayout,\ alpine-keys,\ apk-tools,\ busybox,\ -libc-utils,\ -xz +libc-utils # install packages RUN \ apk add --no-cache \ bash \ - curl \ - tzdata \ xz -# fetch builder script from gliderlabs +# build rootfs RUN \ - curl -o \ - /mkimage-alpine.bash -L \ - https://raw.githubusercontent.com/gliderlabs/docker-alpine/master/builder/scripts/mkimage-alpine.bash && \ - chmod +x \ - /mkimage-alpine.bash && \ - ./mkimage-alpine.bash && \ - mkdir /root-out && \ - tar xf \ - /rootfs.tar.xz -C \ - /root-out && \ + mkdir -p "$ROOTFS/etc/apk" && \ + { \ + echo "$MIRROR/$REL/main"; \ + echo "$MIRROR/$REL/community"; \ + } > "$ROOTFS/etc/apk/repositories" && \ + apk --root "$ROOTFS" --no-cache --keys-dir /etc/apk/keys add --arch $ARCH --initdb ${PACKAGES//,/ } && \ sed -i -e 's/^root::/root:!:/' /root-out/etc/shadow # set version for s6 overlay -ARG S6_OVERLAY_VERSION="3.1.2.1" +ARG S6_OVERLAY_VERSION="3.1.5.0" ARG S6_OVERLAY_ARCH="aarch64" # add s6 overlay @@ -80,7 +74,7 @@ RUN \ curl \ jq \ netcat-openbsd \ - procps \ + procps-ng \ shadow \ tzdata && \ echo "**** create abc user and make our folders ****" && \ @@ -91,11 +85,6 @@ RUN \ /app \ /config \ /defaults && \ - echo "**** add qemu ****" && \ - curl -o \ - /usr/bin/qemu-aarch64-static -L \ - "https://lsio-ci.ams3.digitaloceanspaces.com/qemu-aarch64-static" && \ - chmod +x /usr/bin/qemu-aarch64-static && \ echo "**** cleanup ****" && \ rm -rf \ /tmp/* diff --git a/Dockerfile.armhf b/Dockerfile.armhf deleted file mode 100644 index 570173cc..00000000 --- a/Dockerfile.armhf +++ /dev/null @@ -1,106 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM alpine:3.16 as rootfs-stage - -# environment -ENV REL=v3.17 -ENV ARCH=armv7 -ENV MIRROR=http://dl-cdn.alpinelinux.org/alpine -ENV PACKAGES=alpine-baselayout,\ -alpine-keys,\ -apk-tools,\ -busybox,\ -libc-utils,\ -xz - -# install packages -RUN \ - apk add --no-cache \ - bash \ - curl \ - tzdata \ - xz - -# fetch builder script from gliderlabs -RUN \ - curl -o \ - /mkimage-alpine.bash -L \ - https://raw.githubusercontent.com/gliderlabs/docker-alpine/master/builder/scripts/mkimage-alpine.bash && \ - chmod +x \ - /mkimage-alpine.bash && \ - ./mkimage-alpine.bash && \ - mkdir /root-out && \ - tar xf \ - /rootfs.tar.xz -C \ - /root-out && \ - sed -i -e 's/^root::/root:!:/' /root-out/etc/shadow - -# set version for s6 overlay -ARG S6_OVERLAY_VERSION="3.1.2.1" -ARG S6_OVERLAY_ARCH="armhf" - -# add s6 overlay -ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz /tmp -RUN tar -C /root-out -Jxpf /tmp/s6-overlay-noarch.tar.xz -ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_OVERLAY_ARCH}.tar.xz /tmp -RUN tar -C /root-out -Jxpf /tmp/s6-overlay-${S6_OVERLAY_ARCH}.tar.xz - -# add s6 optional symlinks -ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-noarch.tar.xz /tmp -RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz -ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz /tmp -RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz - -# Runtime stage -FROM scratch -COPY --from=rootfs-stage /root-out/ / -ARG BUILD_DATE -ARG VERSION -ARG MODS_VERSION="v3" -LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" -LABEL maintainer="TheLamer" - -ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/docker-mods.${MODS_VERSION}" "/docker-mods" - -# environment variables -ENV PS1="$(whoami)@$(hostname):$(pwd)\\$ " \ -HOME="/root" \ -TERM="xterm" \ -S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" \ -S6_VERBOSITY=1 \ -S6_STAGE2_HOOK=/docker-mods - -RUN \ - echo "**** install runtime packages ****" && \ - apk add --no-cache \ - alpine-release \ - bash \ - ca-certificates \ - coreutils \ - curl \ - jq \ - netcat-openbsd \ - procps \ - shadow \ - tzdata && \ - echo "**** create abc user and make our folders ****" && \ - groupmod -g 1000 users && \ - useradd -u 911 -U -d /config -s /bin/false abc && \ - usermod -G users abc && \ - mkdir -p \ - /app \ - /config \ - /defaults && \ - echo "**** add qemu ****" && \ - curl -o \ - /usr/bin/qemu-arm-static -L \ - "https://lsio-ci.ams3.digitaloceanspaces.com/qemu-arm-static" && \ - chmod +x /usr/bin/qemu-arm-static && \ - echo "**** cleanup ****" && \ - rm -rf \ - /tmp/* - -# add local files -COPY root/ / - -ENTRYPOINT ["/init"] diff --git a/Jenkinsfile b/Jenkinsfile index 3139c3ef..961ac618 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -43,7 +43,7 @@ pipeline { script{ env.EXIT_STATUS = '' env.LS_RELEASE = sh( - script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:3.17 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''', + script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:3.18 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''', returnStdout: true).trim() env.LS_RELEASE_NOTES = sh( script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''', @@ -67,7 +67,7 @@ pipeline { script{ env.LS_TAG_NUMBER = sh( script: '''#! /bin/bash - tagsha=$(git rev-list -n 1 3.17-${LS_RELEASE} 2>/dev/null) + tagsha=$(git rev-list -n 1 3.18-${LS_RELEASE} 2>/dev/null) if [ "${tagsha}" == "${COMMIT_SHA}" ]; then echo ${LS_RELEASE_NUMBER} elif [ -z "${GIT_COMMIT}" ]; then @@ -156,13 +156,13 @@ pipeline { env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME if (env.MULTIARCH == 'true') { - env.CI_TAGS = 'amd64-3.17-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-3.17-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-3.17-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + env.CI_TAGS = 'amd64-3.18-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-3.18-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER } else { - env.CI_TAGS = '3.17-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + env.CI_TAGS = '3.18-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER } env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER - env.META_TAG = '3.17-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER - env.EXT_RELEASE_TAG = '3.17-version-' + env.EXT_RELEASE_CLEAN + env.META_TAG = '3.18-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + env.EXT_RELEASE_TAG = '3.18-version-' + env.EXT_RELEASE_CLEAN } } } @@ -179,13 +179,13 @@ pipeline { env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME if (env.MULTIARCH == 'true') { - env.CI_TAGS = 'amd64-3.17-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-3.17-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-3.17-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + env.CI_TAGS = 'amd64-3.18-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-3.18-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA } else { - env.CI_TAGS = '3.17-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + env.CI_TAGS = '3.18-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA } env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA - env.META_TAG = '3.17-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA - env.EXT_RELEASE_TAG = '3.17-version-' + env.EXT_RELEASE_CLEAN + env.META_TAG = '3.18-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + env.EXT_RELEASE_TAG = '3.18-version-' + env.EXT_RELEASE_CLEAN env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/' } } @@ -202,13 +202,13 @@ pipeline { env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME if (env.MULTIARCH == 'true') { - env.CI_TAGS = 'amd64-3.17-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-3.17-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-3.17-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + env.CI_TAGS = 'amd64-3.18-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-3.18-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST } else { - env.CI_TAGS = '3.17-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + env.CI_TAGS = '3.18-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST } env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST - env.META_TAG = '3.17-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST - env.EXT_RELEASE_TAG = '3.17-version-' + env.EXT_RELEASE_CLEAN + env.META_TAG = '3.18-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + env.EXT_RELEASE_TAG = '3.18-version-' + env.EXT_RELEASE_CLEAN env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/' } @@ -484,40 +484,6 @@ pipeline { --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." } } - stage('Build ARMHF') { - agent { - label 'ARMHF' - } - steps { - echo "Running on node: ${NODE_NAME}" - echo 'Logging into Github' - sh '''#! /bin/bash - echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin - ''' - sh "docker buildx build \ - --label \"org.opencontainers.image.created=${GITHUB_DATE}\" \ - --label \"org.opencontainers.image.authors=linuxserver.io\" \ - --label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-baseimage-alpine/packages\" \ - --label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-baseimage-alpine\" \ - --label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-baseimage-alpine\" \ - --label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \ - --label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \ - --label \"org.opencontainers.image.vendor=linuxserver.io\" \ - --label \"org.opencontainers.image.licenses=GPL-3.0-only\" \ - --label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \ - --label \"org.opencontainers.image.title=Baseimage-alpine\" \ - --label \"org.opencontainers.image.description=baseimage-alpine image by linuxserver.io\" \ - --no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} --platform=linux/arm/v7 \ - --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." - sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}" - retry(5) { - sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}" - } - sh '''docker rmi \ - ${IMAGE}:arm32v7-${META_TAG} \ - ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} || :''' - } - } stage('Build ARM64') { agent { label 'ARM64' @@ -654,9 +620,7 @@ pipeline { set -e docker pull ghcr.io/linuxserver/ci:latest if [ "${MULTIARCH}" == "true" ]; then - docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} - docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG} docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} fi docker run --rm \ @@ -713,12 +677,12 @@ pipeline { echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG} - docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:3.17 + docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:3.18 docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG} if [ -n "${SEMVER}" ]; then docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${SEMVER} fi - docker push ${PUSHIMAGE}:3.17 + docker push ${PUSHIMAGE}:3.18 docker push ${PUSHIMAGE}:${META_TAG} docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG} if [ -n "${SEMVER}" ]; then @@ -732,7 +696,7 @@ pipeline { docker rmi \ ${DELETEIMAGE}:${META_TAG} \ ${DELETEIMAGE}:${EXT_RELEASE_TAG} \ - ${DELETEIMAGE}:3.17 || : + ${DELETEIMAGE}:3.18 || : if [ -n "${SEMVER}" ]; then docker rmi ${DELETEIMAGE}:${SEMVER} || : fi @@ -770,59 +734,48 @@ pipeline { echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin if [ "${CI}" == "false" ]; then - docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} - docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG} docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} fi for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} - docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-3.17 + docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-3.18 docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} - docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} - docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-3.17 - docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} - docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-3.17 + docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-3.18 docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} if [ -n "${SEMVER}" ]; then docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER} - docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${SEMVER} docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER} fi docker push ${MANIFESTIMAGE}:amd64-${META_TAG} docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} - docker push ${MANIFESTIMAGE}:amd64-3.17 - docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG} - docker push ${MANIFESTIMAGE}:arm32v7-3.17 - docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} + docker push ${MANIFESTIMAGE}:amd64-3.18 docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG} - docker push ${MANIFESTIMAGE}:arm64v8-3.17 + docker push ${MANIFESTIMAGE}:arm64v8-3.18 docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} if [ -n "${SEMVER}" ]; then docker push ${MANIFESTIMAGE}:amd64-${SEMVER} - docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER} docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER} fi - docker manifest push --purge ${MANIFESTIMAGE}:3.17 || : - docker manifest create ${MANIFESTIMAGE}:3.17 ${MANIFESTIMAGE}:amd64-3.17 ${MANIFESTIMAGE}:arm32v7-3.17 ${MANIFESTIMAGE}:arm64v8-3.17 - docker manifest annotate ${MANIFESTIMAGE}:3.17 ${MANIFESTIMAGE}:arm32v7-3.17 --os linux --arch arm - docker manifest annotate ${MANIFESTIMAGE}:3.17 ${MANIFESTIMAGE}:arm64v8-3.17 --os linux --arch arm64 --variant v8 + docker manifest push --purge ${MANIFESTIMAGE}:3.18 || : + docker manifest create ${MANIFESTIMAGE}:3.18 ${MANIFESTIMAGE}:amd64-3.18 ${MANIFESTIMAGE}:arm64v8-3.18 + docker manifest annotate ${MANIFESTIMAGE}:3.18 ${MANIFESTIMAGE}:arm64v8-3.18 --os linux --arch arm64 --variant v8 docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || : - docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} - docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm + docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8 docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || : - docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} - docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm + docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8 if [ -n "${SEMVER}" ]; then docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || : - docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} - docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm + docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8 fi - docker manifest push --purge ${MANIFESTIMAGE}:3.17 + docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-3.18 || : + docker manifest create ${MANIFESTIMAGE}:arm32v7-3.18 ${MANIFESTIMAGE}:amd64-3.18 + docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-3.18 + docker manifest push --purge ${MANIFESTIMAGE}:3.18 docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} if [ -n "${SEMVER}" ]; then @@ -834,20 +787,15 @@ pipeline { sh '''#! /bin/bash for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do docker rmi \ - ${DELETEIMAGE}:arm32v7-${META_TAG} \ - ${DELETEIMAGE}:arm32v7-3.17 \ - ${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \ ${DELETEIMAGE}:arm64v8-${META_TAG} \ - ${DELETEIMAGE}:arm64v8-3.17 \ + ${DELETEIMAGE}:arm64v8-3.18 \ ${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || : if [ -n "${SEMVER}" ]; then docker rmi \ - ${DELETEIMAGE}:arm32v7-${SEMVER} \ ${DELETEIMAGE}:arm64v8-${SEMVER} || : fi done docker rmi \ - ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \ ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || : ''' } diff --git a/jenkins-vars.yml b/jenkins-vars.yml index 2140c58b..950463bb 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -4,8 +4,9 @@ project_name: docker-baseimage-alpine external_type: os release_type: stable -release_tag: "3.17" +release_tag: "3.18" ls_branch: master +build_armhf: false repo_vars: - BUILD_VERSION_ARG = 'OS' - LS_USER = 'linuxserver'