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

Commit 236cc24

Browse files
committed
update build logic off currently pulled head for jenkins-builder to tag downstream as armv7
1 parent 23bcc7c commit 236cc24

File tree

3 files changed

+54
-89
lines changed

3 files changed

+54
-89
lines changed

Dockerfile.aarch64

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM lsiobase/ubuntu.arm64:bionic
1+
FROM lsiobase/ubuntu:arm64v8-bionic
22

33
# environment settings
44
ARG DEBIAN_FRONTEND="noninteractive"

Dockerfile.armhf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM lsiobase/ubuntu.armhf:bionic
1+
FROM lsiobase/ubuntu:arm32v7-bionic
22

33
# environment settings
44
ARG DEBIAN_FRONTEND="noninteractive"

Jenkinsfile

Lines changed: 52 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ pipeline {
113113
script{
114114
env.IMAGE = env.DOCKERHUB_IMAGE
115115
if (env.MULTIARCH == 'true') {
116-
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v6-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
116+
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
117117
} else {
118118
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
119119
}
@@ -131,7 +131,7 @@ pipeline {
131131
script{
132132
env.IMAGE = env.DEV_DOCKERHUB_IMAGE
133133
if (env.MULTIARCH == 'true') {
134-
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v6-' + 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
134+
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
135135
} else {
136136
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
137137
}
@@ -149,7 +149,7 @@ pipeline {
149149
script{
150150
env.IMAGE = env.PR_DOCKERHUB_IMAGE
151151
if (env.MULTIARCH == 'true') {
152-
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v6-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
152+
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
153153
} else {
154154
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
155155
}
@@ -159,67 +159,32 @@ pipeline {
159159
}
160160
}
161161
}
162-
// Use helper containers to render templated files
163-
stage('Update-Templates') {
162+
// Run ShellCheck
163+
stage('ShellCheck') {
164164
when {
165-
branch "bionic-5.14"
166-
environment name: 'CHANGE_ID', value: ''
167-
expression {
168-
env.CONTAINER_NAME != null
169-
}
170-
}
171-
steps {
172-
sh '''#! /bin/bash
173-
set -e
174-
TEMPDIR=$(mktemp -d)
175-
docker pull linuxserver/jenkins-builder:latest
176-
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=bionic-5.14 -v ${TEMPDIR}:/ansible/jenkins linuxserver/jenkins-builder:latest
177-
docker pull linuxserver/doc-builder:latest
178-
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=bionic-5.14 -v ${TEMPDIR}:/ansible/readme linuxserver/doc-builder:latest
179-
if [ "$(md5sum ${TEMPDIR}/${LS_REPO}/Jenkinsfile | awk '{ print $1 }')" != "$(md5sum Jenkinsfile | awk '{ print $1 }')" ] || [ "$(md5sum ${TEMPDIR}/${CONTAINER_NAME}/README.md | awk '{ print $1 }')" != "$(md5sum README.md | awk '{ print $1 }')" ]; then
180-
mkdir -p ${TEMPDIR}/repo
181-
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
182-
git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git checkout -f bionic-5.14
183-
cp ${TEMPDIR}/${CONTAINER_NAME}/README.md ${TEMPDIR}/repo/${LS_REPO}/
184-
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
185-
cd ${TEMPDIR}/repo/${LS_REPO}/
186-
git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git add Jenkinsfile README.md
187-
git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git commit -m 'Bot Updating Templated Files'
188-
git --git-dir ${TEMPDIR}/repo/${LS_REPO}/.git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
189-
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
190-
else
191-
echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
192-
fi
193-
mkdir -p ${TEMPDIR}/gitbook
194-
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/gitbook/docker-documentation
195-
if [ "${BRANCH_NAME}" = "master" ] && [ ! -f ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md ] || [ "$(md5sum ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" ]; then
196-
cp ${TEMPDIR}/${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/
197-
cd ${TEMPDIR}/gitbook/docker-documentation/
198-
git add images/docker-${CONTAINER_NAME}.md
199-
git commit -m 'Bot Updating Templated Files'
200-
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git --all
201-
fi
202-
rm -Rf ${TEMPDIR}'''
203-
script{
204-
env.FILES_UPDATED = sh(
205-
script: '''cat /tmp/${COMMIT_SHA}-${BUILD_NUMBER}''',
206-
returnStdout: true).trim()
207-
}
208-
}
209-
}
210-
// Exit the build if the Templated files were just updated
211-
stage('Template-exit') {
212-
when {
213-
branch "bionic-5.14"
214-
environment name: 'CHANGE_ID', value: ''
215-
environment name: 'FILES_UPDATED', value: 'true'
216-
expression {
217-
env.CONTAINER_NAME != null
218-
}
165+
environment name: 'CI', value: 'true'
219166
}
220167
steps {
221-
script{
222-
env.EXIT_STATUS = 'ABORTED'
168+
withCredentials([
169+
string(credentialsId: 'spaces-key', variable: 'DO_KEY'),
170+
string(credentialsId: 'spaces-secret', variable: 'DO_SECRET')
171+
]) {
172+
script{
173+
env.SHELLCHECK_URL = 'https://lsio-ci.ams3.digitaloceanspaces.com/' + env.IMAGE + '/' + env.META_TAG + '/shellcheck-result.xml'
174+
}
175+
sh '''curl -sL https://raw.githubusercontent.com/linuxserver/docker-shellcheck/master/checkrun.sh | /bin/bash'''
176+
sh '''#! /bin/bash
177+
set -e
178+
docker pull lsiodev/spaces-file-upload:latest
179+
docker run --rm \
180+
-e DESTINATION=\"${IMAGE}/${META_TAG}/shellcheck-result.xml\" \
181+
-e FILE_NAME="shellcheck-result.xml" \
182+
-e MIMETYPE="text/xml" \
183+
-v ${WORKSPACE}:/mnt \
184+
-e SECRET_KEY=\"${DO_SECRET}\" \
185+
-e ACCESS_KEY=\"${DO_KEY}\" \
186+
-t lsiodev/spaces-file-upload:latest \
187+
python /upload.py'''
223188
}
224189
}
225190
}
@@ -269,13 +234,13 @@ pipeline {
269234
'''
270235
sh "curl https://lsio-ci.ams3.digitaloceanspaces.com/qemu-arm-static -o qemu-arm-static"
271236
sh "chmod +x qemu-*"
272-
sh "docker build --no-cache -f Dockerfile.armhf -t ${IMAGE}:arm32v6-${META_TAG} \
237+
sh "docker build --no-cache -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} \
273238
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
274-
sh "docker tag ${IMAGE}:arm32v6-${META_TAG} lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER}"
275-
sh "docker push lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER}"
239+
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
240+
sh "docker push lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
276241
sh '''docker rmi \
277-
${IMAGE}:arm32v6-${META_TAG} \
278-
lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER} '''
242+
${IMAGE}:arm32v7-${META_TAG} \
243+
lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} '''
279244
}
280245
}
281246
}
@@ -328,13 +293,13 @@ pipeline {
328293
fi
329294
if [ "${DIST_IMAGE}" == "alpine" ]; then
330295
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
331-
apk info > packages && \
332-
apk info -v > versions && \
333-
paste -d " " packages versions > /tmp/package_versions.txt && \
296+
apk info -v > /tmp/package_versions.txt && \
297+
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
334298
chmod 777 /tmp/package_versions.txt'
335299
elif [ "${DIST_IMAGE}" == "ubuntu" ]; then
336300
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
337-
apt list -qq --installed | cut -d" " -f1-2 > /tmp/package_versions.txt && \
301+
apt list -qq --installed | sed "s#/.*now ##g" | cut -d" " -f1 > /tmp/package_versions.txt && \
302+
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
338303
chmod 777 /tmp/package_versions.txt'
339304
fi
340305
NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
@@ -414,9 +379,9 @@ pipeline {
414379
set -e
415380
docker pull lsiodev/ci:latest
416381
if [ "${MULTIARCH}" == "true" ]; then
417-
docker pull lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER}
382+
docker pull lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
418383
docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
419-
docker tag lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v6-${META_TAG}
384+
docker tag lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
420385
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
421386
fi
422387
docker run --rm \
@@ -493,38 +458,38 @@ pipeline {
493458
'''
494459
sh '''#! /bin/bash
495460
if [ "${CI}" == "false" ]; then
496-
docker pull lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER}
461+
docker pull lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
497462
docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
498-
docker tag lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v6-${META_TAG}
463+
docker tag lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
499464
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
500465
fi'''
501466
sh "docker tag ${IMAGE}:amd64-${META_TAG} ${IMAGE}:amd64-bionic-5.14"
502-
sh "docker tag ${IMAGE}:arm32v6-${META_TAG} ${IMAGE}:arm32v6-bionic-5.14"
467+
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm32v7-bionic-5.14"
503468
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ${IMAGE}:arm64v8-bionic-5.14"
504469
sh "docker push ${IMAGE}:amd64-${META_TAG}"
505-
sh "docker push ${IMAGE}:arm32v6-${META_TAG}"
470+
sh "docker push ${IMAGE}:arm32v7-${META_TAG}"
506471
sh "docker push ${IMAGE}:arm64v8-${META_TAG}"
507472
sh "docker push ${IMAGE}:amd64-bionic-5.14"
508-
sh "docker push ${IMAGE}:arm32v6-bionic-5.14"
473+
sh "docker push ${IMAGE}:arm32v7-bionic-5.14"
509474
sh "docker push ${IMAGE}:arm64v8-bionic-5.14"
510475
sh "docker manifest push --purge ${IMAGE}:bionic-5.14 || :"
511-
sh "docker manifest create ${IMAGE}:bionic-5.14 ${IMAGE}:amd64-bionic-5.14 ${IMAGE}:arm32v6-bionic-5.14 ${IMAGE}:arm64v8-bionic-5.14"
512-
sh "docker manifest annotate ${IMAGE}:bionic-5.14 ${IMAGE}:arm32v6-bionic-5.14 --os linux --arch arm"
476+
sh "docker manifest create ${IMAGE}:bionic-5.14 ${IMAGE}:amd64-bionic-5.14 ${IMAGE}:arm32v7-bionic-5.14 ${IMAGE}:arm64v8-bionic-5.14"
477+
sh "docker manifest annotate ${IMAGE}:bionic-5.14 ${IMAGE}:arm32v7-bionic-5.14 --os linux --arch arm"
513478
sh "docker manifest annotate ${IMAGE}:bionic-5.14 ${IMAGE}:arm64v8-bionic-5.14 --os linux --arch arm64 --variant v8"
514479
sh "docker manifest push --purge ${IMAGE}:${META_TAG} || :"
515-
sh "docker manifest create ${IMAGE}:${META_TAG} ${IMAGE}:amd64-${META_TAG} ${IMAGE}:arm32v6-${META_TAG} ${IMAGE}:arm64v8-${META_TAG}"
516-
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm32v6-${META_TAG} --os linux --arch arm"
480+
sh "docker manifest create ${IMAGE}:${META_TAG} ${IMAGE}:amd64-${META_TAG} ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm64v8-${META_TAG}"
481+
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm32v7-${META_TAG} --os linux --arch arm"
517482
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8"
518483
sh "docker manifest push --purge ${IMAGE}:bionic-5.14"
519484
sh "docker manifest push --purge ${IMAGE}:${META_TAG}"
520485
sh '''docker rmi \
521486
${IMAGE}:amd64-${META_TAG} \
522487
${IMAGE}:amd64-bionic-5.14 \
523-
${IMAGE}:arm32v6-${META_TAG} \
524-
${IMAGE}:arm32v6-bionic-5.14 \
488+
${IMAGE}:arm32v7-${META_TAG} \
489+
${IMAGE}:arm32v7-bionic-5.14 \
525490
${IMAGE}:arm64v8-${META_TAG} \
526491
${IMAGE}:arm64v8-bionic-5.14 \
527-
lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER} \
492+
lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
528493
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} '''
529494
}
530495
}
@@ -595,7 +560,7 @@ pipeline {
595560
}
596561
steps {
597562
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/issues/${PULL_REQUEST}/comments \
598-
-d '{"body": "I am a bot, here are the test results for this PR '${CI_URL}'"}' '''
563+
-d '{"body": "I am a bot, here are the test results for this PR: \\n'${CI_URL}' \\n'${SHELLCHECK_URL}'"}' '''
599564
}
600565
}
601566
}
@@ -610,12 +575,12 @@ pipeline {
610575
}
611576
else if (currentBuild.currentResult == "SUCCESS"){
612577
sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 1681177,\
613-
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
578+
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
614579
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
615580
}
616581
else {
617582
sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 16711680,\
618-
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**Status:** failure\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
583+
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** failure\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
619584
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
620585
}
621586
}

0 commit comments

Comments
 (0)