Skip to content
This repository was archived by the owner on Jan 1, 2024. It is now read-only.

Commit dcda8e1

Browse files
Bot Updating Templated Files
1 parent 1297b56 commit dcda8e1

File tree

1 file changed

+20
-63
lines changed

1 file changed

+20
-63
lines changed

Jenkinsfile

Lines changed: 20 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ pipeline {
173173
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
174174
env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME
175175
if (env.MULTIARCH == 'true') {
176-
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
176+
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
177177
} else {
178178
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
179179
}
@@ -196,7 +196,7 @@ pipeline {
196196
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
197197
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
198198
if (env.MULTIARCH == 'true') {
199-
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
199+
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
200200
} else {
201201
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
202202
}
@@ -219,7 +219,7 @@ pipeline {
219219
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
220220
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
221221
if (env.MULTIARCH == 'true') {
222-
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
222+
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
223223
} else {
224224
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
225225
}
@@ -290,7 +290,7 @@ pipeline {
290290
echo "Jenkinsfile is up to date."
291291
fi
292292
# Stage 2 - Delete old templates
293-
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"
293+
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"
294294
for i in ${OLD_TEMPLATES}; do
295295
if [[ -f "${i}" ]]; then
296296
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
@@ -326,12 +326,13 @@ pipeline {
326326
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
327327
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
328328
cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || :
329+
cp --parents readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/ || :
329330
cd ${TEMPDIR}/repo/${LS_REPO}/
330331
if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then
331332
echo ".jenkins-external" >> .gitignore
332333
git add .gitignore
333334
fi
334-
git add ${TEMPLATED_FILES}
335+
git add readme-vars.yml ${TEMPLATED_FILES}
335336
git commit -m 'Bot Updating Templated Files'
336337
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
337338
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
@@ -525,44 +526,6 @@ pipeline {
525526
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
526527
}
527528
}
528-
stage('Build ARMHF') {
529-
agent {
530-
label 'ARMHF'
531-
}
532-
steps {
533-
echo "Running on node: ${NODE_NAME}"
534-
echo 'Logging into Github'
535-
sh '''#! /bin/bash
536-
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
537-
'''
538-
sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile.armhf"
539-
sh "docker buildx build \
540-
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
541-
--label \"org.opencontainers.image.authors=linuxserver.io\" \
542-
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-domoticz/packages\" \
543-
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-domoticz\" \
544-
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-domoticz\" \
545-
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
546-
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
547-
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
548-
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
549-
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
550-
--label \"org.opencontainers.image.title=Domoticz\" \
551-
--label \"org.opencontainers.image.description=[Domoticz](https://www.domoticz.com) is a Home Automation System that lets you monitor and configure various devices like: Lights, Switches, various sensors/meters like Temperature, Rain, Wind, UV, Electra, Gas, Water and much more. Notifications/Alerts can be sent to any mobile device.\" \
552-
--no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} --platform=linux/arm/v7 \
553-
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
554-
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
555-
retry(5) {
556-
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
557-
}
558-
sh '''#! /bin/bash
559-
containers=$(docker ps -aq)
560-
if [[ -n "${containers}" ]]; then
561-
docker stop ${containers}
562-
fi
563-
docker system prune -af --volumes || : '''
564-
}
565-
}
566529
stage('Build ARM64') {
567530
agent {
568531
label 'ARM64'
@@ -703,9 +666,7 @@ pipeline {
703666
set -e
704667
docker pull ghcr.io/linuxserver/ci:latest
705668
if [ "${MULTIARCH}" == "true" ]; then
706-
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
707669
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
708-
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
709670
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
710671
fi
711672
docker run --rm \
@@ -808,58 +769,54 @@ pipeline {
808769
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
809770
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
810771
if [ "${CI}" == "false" ]; then
811-
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
812-
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
813772
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
814773
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
815774
fi
816775
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
817776
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
818777
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest
819778
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
820-
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
821-
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-latest
822-
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
823779
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
824780
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest
825781
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
826782
if [ -n "${SEMVER}" ]; then
827783
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER}
828-
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${SEMVER}
829784
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
830785
fi
831786
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
832787
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
833788
docker push ${MANIFESTIMAGE}:amd64-latest
834-
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
835-
docker push ${MANIFESTIMAGE}:arm32v7-latest
836-
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
837789
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
838790
docker push ${MANIFESTIMAGE}:arm64v8-latest
839791
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
840792
if [ -n "${SEMVER}" ]; then
841793
docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
842-
docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER}
843794
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
844795
fi
845796
docker manifest push --purge ${MANIFESTIMAGE}:latest || :
846-
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest
847-
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
797+
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest
848798
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8
849799
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
850-
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
851-
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
800+
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
852801
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
853802
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || :
854-
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
855-
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm
803+
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
856804
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
857805
if [ -n "${SEMVER}" ]; then
858806
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
859-
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
860-
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm
807+
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
861808
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
862809
fi
810+
token=$(curl -sX GET "https://ghcr.io/token?scope=repository%3Alinuxserver%2F${CONTAINER_NAME}%3Apull" | jq -r '.token')
811+
digest=$(curl -s \
812+
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
813+
--header "Authorization: Bearer ${token}" \
814+
"https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-latest")
815+
if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then
816+
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest || :
817+
docker manifest create ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:amd64-latest
818+
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest
819+
fi
863820
docker manifest push --purge ${MANIFESTIMAGE}:latest
864821
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
865822
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}

0 commit comments

Comments
 (0)