|
|
|
@@ -163,7 +163,7 @@ 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-develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
|
|
|
|
env.CI_TAGS = 'amd64-develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
|
|
|
|
} else {
|
|
|
|
|
env.CI_TAGS = 'develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
|
|
|
|
}
|
|
|
|
@@ -186,7 +186,7 @@ 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-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
|
|
|
|
|
env.CI_TAGS = 'amd64-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
|
|
|
|
|
} else {
|
|
|
|
|
env.CI_TAGS = 'develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
|
|
|
|
|
}
|
|
|
|
@@ -209,7 +209,7 @@ 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-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm32v7-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
|
|
|
|
|
env.CI_TAGS = 'amd64-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
|
|
|
|
|
} else {
|
|
|
|
|
env.CI_TAGS = 'develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
|
|
|
|
|
}
|
|
|
|
@@ -515,44 +515,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 "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile.armhf"
|
|
|
|
|
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-radarr/packages\" \
|
|
|
|
|
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-radarr\" \
|
|
|
|
|
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-radarr\" \
|
|
|
|
|
--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=Radarr\" \
|
|
|
|
|
--label \"org.opencontainers.image.description=[Radarr](https://github.com/Radarr/Radarr) - A fork of Sonarr to work with movies à la Couchpotato. \" \
|
|
|
|
|
--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 '''#! /bin/bash
|
|
|
|
|
containers=$(docker ps -aq)
|
|
|
|
|
if [[ -n "${containers}" ]]; then
|
|
|
|
|
docker stop ${containers}
|
|
|
|
|
fi
|
|
|
|
|
docker system prune -af --volumes || : '''
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
stage('Build ARM64') {
|
|
|
|
|
agent {
|
|
|
|
|
label 'ARM64'
|
|
|
|
@@ -693,9 +655,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 \
|
|
|
|
@@ -798,8 +758,6 @@ 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
|
|
|
|
@@ -807,49 +765,47 @@ pipeline {
|
|
|
|
|
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
|
|
|
|
|
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-develop
|
|
|
|
|
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-develop
|
|
|
|
|
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-develop
|
|
|
|
|
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-develop
|
|
|
|
|
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
|
|
|
|
|
docker push ${MANIFESTIMAGE}:arm32v7-develop
|
|
|
|
|
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
|
|
|
|
|
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
|
|
|
|
|
docker push ${MANIFESTIMAGE}:arm64v8-develop
|
|
|
|
|
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}:develop || :
|
|
|
|
|
docker manifest create ${MANIFESTIMAGE}:develop ${MANIFESTIMAGE}:amd64-develop ${MANIFESTIMAGE}:arm32v7-develop ${MANIFESTIMAGE}:arm64v8-develop
|
|
|
|
|
docker manifest annotate ${MANIFESTIMAGE}:develop ${MANIFESTIMAGE}:arm32v7-develop --os linux --arch arm
|
|
|
|
|
docker manifest create ${MANIFESTIMAGE}:develop ${MANIFESTIMAGE}:amd64-develop ${MANIFESTIMAGE}:arm64v8-develop
|
|
|
|
|
docker manifest annotate ${MANIFESTIMAGE}:develop ${MANIFESTIMAGE}:arm64v8-develop --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
|
|
|
|
|
token=$(curl -sX GET "https://ghcr.io/token?scope=repository%3Alinuxserver%2F${CONTAINER_NAME}%3Apull" | jq -r '.token')
|
|
|
|
|
digest=$(curl -s \
|
|
|
|
|
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
|
|
|
|
|
--header "Authorization: Bearer ${token}" \
|
|
|
|
|
"https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-develop")
|
|
|
|
|
if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then
|
|
|
|
|
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-develop || :
|
|
|
|
|
docker manifest create ${MANIFESTIMAGE}:arm32v7-develop ${MANIFESTIMAGE}:amd64-develop
|
|
|
|
|
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-develop
|
|
|
|
|
fi
|
|
|
|
|
docker manifest push --purge ${MANIFESTIMAGE}:develop
|
|
|
|
|
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
|
|
|
|
|
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
|
|
|
|
|