Skip to content

Commit 2f0fa20

Browse files
Bot Updating Templated Files
1 parent e785f33 commit 2f0fa20

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
@@ -163,7 +163,7 @@ pipeline {
163163
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
164164
env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME
165165
if (env.MULTIARCH == 'true') {
166-
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
166+
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
167167
} else {
168168
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
169169
}
@@ -186,7 +186,7 @@ pipeline {
186186
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
187187
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
188188
if (env.MULTIARCH == 'true') {
189-
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
189+
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
190190
} else {
191191
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
192192
}
@@ -209,7 +209,7 @@ pipeline {
209209
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
210210
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
211211
if (env.MULTIARCH == 'true') {
212-
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
212+
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
213213
} else {
214214
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
215215
}
@@ -280,7 +280,7 @@ pipeline {
280280
echo "Jenkinsfile is up to date."
281281
fi
282282
# Stage 2 - Delete old templates
283-
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"
283+
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"
284284
for i in ${OLD_TEMPLATES}; do
285285
if [[ -f "${i}" ]]; then
286286
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
@@ -316,12 +316,13 @@ pipeline {
316316
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
317317
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
318318
cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || :
319+
cp --parents readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/ || :
319320
cd ${TEMPDIR}/repo/${LS_REPO}/
320321
if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then
321322
echo ".jenkins-external" >> .gitignore
322323
git add .gitignore
323324
fi
324-
git add ${TEMPLATED_FILES}
325+
git add readme-vars.yml ${TEMPLATED_FILES}
325326
git commit -m 'Bot Updating Templated Files'
326327
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
327328
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
@@ -515,44 +516,6 @@ pipeline {
515516
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
516517
}
517518
}
518-
stage('Build ARMHF') {
519-
agent {
520-
label 'ARMHF'
521-
}
522-
steps {
523-
echo "Running on node: ${NODE_NAME}"
524-
echo 'Logging into Github'
525-
sh '''#! /bin/bash
526-
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
527-
'''
528-
sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile.armhf"
529-
sh "docker buildx build \
530-
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
531-
--label \"org.opencontainers.image.authors=linuxserver.io\" \
532-
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-code-server/packages\" \
533-
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-code-server\" \
534-
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-code-server\" \
535-
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
536-
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
537-
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
538-
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
539-
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
540-
--label \"org.opencontainers.image.title=Code-server\" \
541-
--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.\" \
542-
--no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} --platform=linux/arm/v7 \
543-
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
544-
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
545-
retry(5) {
546-
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
547-
}
548-
sh '''#! /bin/bash
549-
containers=$(docker ps -aq)
550-
if [[ -n "${containers}" ]]; then
551-
docker stop ${containers}
552-
fi
553-
docker system prune -af --volumes || : '''
554-
}
555-
}
556519
stage('Build ARM64') {
557520
agent {
558521
label 'ARM64'
@@ -693,9 +656,7 @@ pipeline {
693656
set -e
694657
docker pull ghcr.io/linuxserver/ci:latest
695658
if [ "${MULTIARCH}" == "true" ]; then
696-
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
697659
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
698-
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
699660
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
700661
fi
701662
docker run --rm \
@@ -798,58 +759,54 @@ pipeline {
798759
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
799760
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
800761
if [ "${CI}" == "false" ]; then
801-
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
802-
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
803762
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
804763
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
805764
fi
806765
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
807766
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
808767
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest
809768
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
810-
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
811-
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-latest
812-
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
813769
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
814770
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest
815771
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
816772
if [ -n "${SEMVER}" ]; then
817773
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER}
818-
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${SEMVER}
819774
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
820775
fi
821776
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
822777
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
823778
docker push ${MANIFESTIMAGE}:amd64-latest
824-
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
825-
docker push ${MANIFESTIMAGE}:arm32v7-latest
826-
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
827779
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
828780
docker push ${MANIFESTIMAGE}:arm64v8-latest
829781
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
830782
if [ -n "${SEMVER}" ]; then
831783
docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
832-
docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER}
833784
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
834785
fi
835786
docker manifest push --purge ${MANIFESTIMAGE}:latest || :
836-
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest
837-
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
787+
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest
838788
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8
839789
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
840-
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
841-
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
790+
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
842791
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
843792
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || :
844-
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
845-
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm
793+
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
846794
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
847795
if [ -n "${SEMVER}" ]; then
848796
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
849-
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
850-
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm
797+
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
851798
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
852799
fi
800+
token=$(curl -sX GET "https://ghcr.io/token?scope=repository%3Alinuxserver%2F${CONTAINER_NAME}%3Apull" | jq -r '.token')
801+
digest=$(curl -s \
802+
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
803+
--header "Authorization: Bearer ${token}" \
804+
"https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-latest")
805+
if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then
806+
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest || :
807+
docker manifest create ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:amd64-latest
808+
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest
809+
fi
853810
docker manifest push --purge ${MANIFESTIMAGE}:latest
854811
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
855812
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}

0 commit comments

Comments
 (0)