Skip to content
This repository was archived by the owner on Oct 25, 2023. It is now read-only.

Commit 03bddb3

Browse files
Bot Updating Templated Files
1 parent 7f0acfa commit 03bddb3

1 file changed

Lines changed: 20 additions & 63 deletions

File tree

Jenkinsfile

Lines changed: 20 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ pipeline {
165165
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
166166
env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME
167167
if (env.MULTIARCH == 'true') {
168-
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
168+
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
169169
} else {
170170
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
171171
}
@@ -188,7 +188,7 @@ pipeline {
188188
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
189189
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
190190
if (env.MULTIARCH == 'true') {
191-
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
191+
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
192192
} else {
193193
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
194194
}
@@ -211,7 +211,7 @@ pipeline {
211211
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
212212
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
213213
if (env.MULTIARCH == 'true') {
214-
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
214+
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
215215
} else {
216216
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
217217
}
@@ -282,7 +282,7 @@ pipeline {
282282
echo "Jenkinsfile is up to date."
283283
fi
284284
# 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"
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"
286286
for i in ${OLD_TEMPLATES}; do
287287
if [[ -f "${i}" ]]; then
288288
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
@@ -318,12 +318,13 @@ pipeline {
318318
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
319319
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
320320
cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || :
321+
cp --parents readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/ || :
321322
cd ${TEMPDIR}/repo/${LS_REPO}/
322323
if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then
323324
echo ".jenkins-external" >> .gitignore
324325
git add .gitignore
325326
fi
326-
git add ${TEMPLATED_FILES}
327+
git add readme-vars.yml ${TEMPLATED_FILES}
327328
git commit -m 'Bot Updating Templated Files'
328329
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
329330
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
@@ -517,44 +518,6 @@ pipeline {
517518
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
518519
}
519520
}
520-
stage('Build ARMHF') {
521-
agent {
522-
label 'ARMHF'
523-
}
524-
steps {
525-
echo "Running on node: ${NODE_NAME}"
526-
echo 'Logging into Github'
527-
sh '''#! /bin/bash
528-
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
529-
'''
530-
sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile.armhf"
531-
sh "docker buildx build \
532-
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
533-
--label \"org.opencontainers.image.authors=linuxserver.io\" \
534-
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-embystat/packages\" \
535-
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-embystat\" \
536-
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-embystat\" \
537-
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
538-
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
539-
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
540-
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
541-
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
542-
--label \"org.opencontainers.image.title=Embystat\" \
543-
--label \"org.opencontainers.image.description=[Embystat](https://github.com/mregni/EmbyStat) is a personal web server that can calculate all kinds of statistics from your (local) Emby server. Just install this on your server and let him calculate all kinds of fun stuff.\" \
544-
--no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} --platform=linux/arm/v7 \
545-
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
546-
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
547-
retry(5) {
548-
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
549-
}
550-
sh '''#! /bin/bash
551-
containers=$(docker ps -aq)
552-
if [[ -n "${containers}" ]]; then
553-
docker stop ${containers}
554-
fi
555-
docker system prune -af --volumes || : '''
556-
}
557-
}
558521
stage('Build ARM64') {
559522
agent {
560523
label 'ARM64'
@@ -695,9 +658,7 @@ pipeline {
695658
set -e
696659
docker pull ghcr.io/linuxserver/ci:latest
697660
if [ "${MULTIARCH}" == "true" ]; then
698-
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
699661
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
700-
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
701662
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
702663
fi
703664
docker run --rm \
@@ -800,58 +761,54 @@ pipeline {
800761
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
801762
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
802763
if [ "${CI}" == "false" ]; then
803-
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
804-
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
805764
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
806765
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
807766
fi
808767
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
809768
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
810769
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest
811770
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
812-
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
813-
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-latest
814-
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
815771
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
816772
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest
817773
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
818774
if [ -n "${SEMVER}" ]; then
819775
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER}
820-
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${SEMVER}
821776
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
822777
fi
823778
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
824779
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
825780
docker push ${MANIFESTIMAGE}:amd64-latest
826-
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
827-
docker push ${MANIFESTIMAGE}:arm32v7-latest
828-
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
829781
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
830782
docker push ${MANIFESTIMAGE}:arm64v8-latest
831783
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
832784
if [ -n "${SEMVER}" ]; then
833785
docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
834-
docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER}
835786
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
836787
fi
837788
docker manifest push --purge ${MANIFESTIMAGE}:latest || :
838-
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest
839-
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
789+
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest
840790
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8
841791
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
842-
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
843-
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
792+
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
844793
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
845794
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || :
846-
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
847-
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm
795+
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
848796
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
849797
if [ -n "${SEMVER}" ]; then
850798
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
851-
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
852-
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm
799+
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
853800
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
854801
fi
802+
token=$(curl -sX GET "https://ghcr.io/token?scope=repository%3Alinuxserver%2F${CONTAINER_NAME}%3Apull" | jq -r '.token')
803+
digest=$(curl -s \
804+
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
805+
--header "Authorization: Bearer ${token}" \
806+
"https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-latest")
807+
if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then
808+
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest || :
809+
docker manifest create ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:amd64-latest
810+
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest
811+
fi
855812
docker manifest push --purge ${MANIFESTIMAGE}:latest
856813
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
857814
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}

0 commit comments

Comments
 (0)