@@ -123,7 +123,7 @@ pipeline {
123123 script{
124124 env. IMAGE = env. DOCKERHUB_IMAGE
125125 if (env. MULTIARCH == ' true' ) {
126- 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
126+ 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
127127 } else {
128128 env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER
129129 }
@@ -141,7 +141,7 @@ pipeline {
141141 script{
142142 env. IMAGE = env. DEV_DOCKERHUB_IMAGE
143143 if (env. MULTIARCH == ' true' ) {
144- 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
144+ 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
145145 } else {
146146 env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA
147147 }
@@ -159,7 +159,7 @@ pipeline {
159159 script{
160160 env. IMAGE = env. PR_DOCKERHUB_IMAGE
161161 if (env. MULTIARCH == ' true' ) {
162- 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
162+ 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
163163 } else {
164164 env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
165165 }
@@ -169,6 +169,35 @@ pipeline {
169169 }
170170 }
171171 }
172+ // Run ShellCheck
173+ stage(' ShellCheck' ) {
174+ when {
175+ environment name : ' CI' , value : ' true'
176+ }
177+ steps {
178+ withCredentials([
179+ string(credentialsId : ' spaces-key' , variable : ' DO_KEY' ),
180+ string(credentialsId : ' spaces-secret' , variable : ' DO_SECRET' )
181+ ]) {
182+ script{
183+ env. SHELLCHECK_URL = ' https://lsio-ci.ams3.digitaloceanspaces.com/' + env. IMAGE + ' /' + env. META_TAG + ' /shellcheck-result.xml'
184+ }
185+ sh ''' curl -sL https://raw.githubusercontent.com/linuxserver/docker-shellcheck/master/checkrun.sh | /bin/bash'''
186+ sh ''' #! /bin/bash
187+ set -e
188+ docker pull lsiodev/spaces-file-upload:latest
189+ docker run --rm \
190+ -e DESTINATION=\" ${IMAGE}/${META_TAG}/shellcheck-result.xml\" \
191+ -e FILE_NAME="shellcheck-result.xml" \
192+ -e MIMETYPE="text/xml" \
193+ -v ${WORKSPACE}:/mnt \
194+ -e SECRET_KEY=\" ${DO_SECRET}\" \
195+ -e ACCESS_KEY=\" ${DO_KEY}\" \
196+ -t lsiodev/spaces-file-upload:latest \
197+ python /upload.py'''
198+ }
199+ }
200+ }
172201 // Use helper containers to render templated files
173202 stage(' Update-Templates' ) {
174203 when {
@@ -243,7 +272,7 @@ pipeline {
243272 environment name : ' EXIT_STATUS' , value : ' '
244273 }
245274 steps {
246- sh " docker build --no-cache -t ${ IMAGE} :${ META_TAG} \
275+ sh " docker build --no-cache --pull - t ${ IMAGE} :${ META_TAG} \
247276 --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
248277 }
249278 }
@@ -256,7 +285,7 @@ pipeline {
256285 parallel {
257286 stage(' Build X86' ) {
258287 steps {
259- sh " docker build --no-cache -t ${ IMAGE} :amd64-${ META_TAG} \
288+ sh " docker build --no-cache --pull - t ${ IMAGE} :amd64-${ META_TAG} \
260289 --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
261290 }
262291 }
@@ -279,13 +308,13 @@ pipeline {
279308 '''
280309 sh " curl https://lsio-ci.ams3.digitaloceanspaces.com/qemu-arm-static -o qemu-arm-static"
281310 sh " chmod +x qemu-*"
282- sh " docker build --no-cache -f Dockerfile.armhf -t ${ IMAGE} :arm32v6 -${ META_TAG} \
311+ sh " docker build --no-cache --pull - f Dockerfile.armhf -t ${ IMAGE} :arm32v7 -${ META_TAG} \
283312 --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
284- sh " docker tag ${ IMAGE} :arm32v6 -${ META_TAG} lsiodev/buildcache:arm32v6 -${ COMMIT_SHA} -${ BUILD_NUMBER} "
285- sh " docker push lsiodev/buildcache:arm32v6 -${ COMMIT_SHA} -${ BUILD_NUMBER} "
313+ sh " docker tag ${ IMAGE} :arm32v7 -${ META_TAG} lsiodev/buildcache:arm32v7 -${ COMMIT_SHA} -${ BUILD_NUMBER} "
314+ sh " docker push lsiodev/buildcache:arm32v7 -${ COMMIT_SHA} -${ BUILD_NUMBER} "
286315 sh ''' docker rmi \
287- ${IMAGE}:arm32v6 -${META_TAG} \
288- lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER} '''
316+ ${IMAGE}:arm32v7 -${META_TAG} \
317+ lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER} '''
289318 }
290319 }
291320 }
@@ -308,7 +337,7 @@ pipeline {
308337 '''
309338 sh " curl https://lsio-ci.ams3.digitaloceanspaces.com/qemu-aarch64-static -o qemu-aarch64-static"
310339 sh " chmod +x qemu-*"
311- sh " docker build --no-cache -f Dockerfile.aarch64 -t ${ IMAGE} :arm64v8-${ META_TAG} \
340+ sh " docker build --no-cache --pull - f Dockerfile.aarch64 -t ${ IMAGE} :arm64v8-${ META_TAG} \
312341 --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
313342 sh " docker tag ${ IMAGE} :arm64v8-${ META_TAG} lsiodev/buildcache:arm64v8-${ COMMIT_SHA} -${ BUILD_NUMBER} "
314343 sh " docker push lsiodev/buildcache:arm64v8-${ COMMIT_SHA} -${ BUILD_NUMBER} "
@@ -338,13 +367,13 @@ pipeline {
338367 fi
339368 if [ "${DIST_IMAGE}" == "alpine" ]; then
340369 docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
341- apk info > packages && \
342- apk info -v > versions && \
343- paste -d " " packages versions > /tmp/package_versions.txt && \
370+ apk info -v > /tmp/package_versions.txt && \
371+ sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
344372 chmod 777 /tmp/package_versions.txt'
345373 elif [ "${DIST_IMAGE}" == "ubuntu" ]; then
346374 docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
347- apt list -qq --installed | cut -d" " -f1-2 > /tmp/package_versions.txt && \
375+ apt list -qq --installed | sed "s#/.*now ##g" | cut -d" " -f1 > /tmp/package_versions.txt && \
376+ sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
348377 chmod 777 /tmp/package_versions.txt'
349378 fi
350379 NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
@@ -424,9 +453,9 @@ pipeline {
424453 set -e
425454 docker pull lsiodev/ci:latest
426455 if [ "${MULTIARCH}" == "true" ]; then
427- docker pull lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER}
456+ docker pull lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER}
428457 docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
429- docker tag lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v6 -${META_TAG}
458+ docker tag lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7 -${META_TAG}
430459 docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
431460 fi
432461 docker run --rm \
@@ -503,38 +532,38 @@ pipeline {
503532 '''
504533 sh ''' #! /bin/bash
505534 if [ "${CI}" == "false" ]; then
506- docker pull lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER}
535+ docker pull lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER}
507536 docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
508- docker tag lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v6 -${META_TAG}
537+ docker tag lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7 -${META_TAG}
509538 docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
510539 fi'''
511540 sh " docker tag ${ IMAGE} :amd64-${ META_TAG} ${ IMAGE} :amd64-latest"
512- sh " docker tag ${ IMAGE} :arm32v6 -${ META_TAG} ${ IMAGE} :arm32v6 -latest"
541+ sh " docker tag ${ IMAGE} :arm32v7 -${ META_TAG} ${ IMAGE} :arm32v7 -latest"
513542 sh " docker tag ${ IMAGE} :arm64v8-${ META_TAG} ${ IMAGE} :arm64v8-latest"
514543 sh " docker push ${ IMAGE} :amd64-${ META_TAG} "
515- sh " docker push ${ IMAGE} :arm32v6 -${ META_TAG} "
544+ sh " docker push ${ IMAGE} :arm32v7 -${ META_TAG} "
516545 sh " docker push ${ IMAGE} :arm64v8-${ META_TAG} "
517546 sh " docker push ${ IMAGE} :amd64-latest"
518- sh " docker push ${ IMAGE} :arm32v6 -latest"
547+ sh " docker push ${ IMAGE} :arm32v7 -latest"
519548 sh " docker push ${ IMAGE} :arm64v8-latest"
520549 sh " docker manifest push --purge ${ IMAGE} :latest || :"
521- sh " docker manifest create ${ IMAGE} :latest ${ IMAGE} :amd64-latest ${ IMAGE} :arm32v6 -latest ${ IMAGE} :arm64v8-latest"
522- sh " docker manifest annotate ${ IMAGE} :latest ${ IMAGE} :arm32v6 -latest --os linux --arch arm"
550+ sh " docker manifest create ${ IMAGE} :latest ${ IMAGE} :amd64-latest ${ IMAGE} :arm32v7 -latest ${ IMAGE} :arm64v8-latest"
551+ sh " docker manifest annotate ${ IMAGE} :latest ${ IMAGE} :arm32v7 -latest --os linux --arch arm"
523552 sh " docker manifest annotate ${ IMAGE} :latest ${ IMAGE} :arm64v8-latest --os linux --arch arm64 --variant v8"
524553 sh " docker manifest push --purge ${ IMAGE} :${ META_TAG} || :"
525- sh " docker manifest create ${ IMAGE} :${ META_TAG} ${ IMAGE} :amd64-${ META_TAG} ${ IMAGE} :arm32v6 -${ META_TAG} ${ IMAGE} :arm64v8-${ META_TAG} "
526- sh " docker manifest annotate ${ IMAGE} :${ META_TAG} ${ IMAGE} :arm32v6 -${ META_TAG} --os linux --arch arm"
554+ sh " docker manifest create ${ IMAGE} :${ META_TAG} ${ IMAGE} :amd64-${ META_TAG} ${ IMAGE} :arm32v7 -${ META_TAG} ${ IMAGE} :arm64v8-${ META_TAG} "
555+ sh " docker manifest annotate ${ IMAGE} :${ META_TAG} ${ IMAGE} :arm32v7 -${ META_TAG} --os linux --arch arm"
527556 sh " docker manifest annotate ${ IMAGE} :${ META_TAG} ${ IMAGE} :arm64v8-${ META_TAG} --os linux --arch arm64 --variant v8"
528557 sh " docker manifest push --purge ${ IMAGE} :latest"
529558 sh " docker manifest push --purge ${ IMAGE} :${ META_TAG} "
530559 sh ''' docker rmi \
531560 ${IMAGE}:amd64-${META_TAG} \
532561 ${IMAGE}:amd64-latest \
533- ${IMAGE}:arm32v6 -${META_TAG} \
534- ${IMAGE}:arm32v6 -latest \
562+ ${IMAGE}:arm32v7 -${META_TAG} \
563+ ${IMAGE}:arm32v7 -latest \
535564 ${IMAGE}:arm64v8-${META_TAG} \
536565 ${IMAGE}:arm64v8-latest \
537- lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER} \
566+ lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER} \
538567 lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} '''
539568 }
540569 }
@@ -605,7 +634,7 @@ pipeline {
605634 }
606635 steps {
607636 sh ''' curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/issues/${PULL_REQUEST}/comments \
608- -d '{"body": "I am a bot, here are the test results for this PR '${CI_URL}'"}' '''
637+ -d '{"body": "I am a bot, here are the test results for this PR: \\ n '${CI_URL}' \\ n'${SHELLCHECK_URL }'"}' '''
609638 }
610639 }
611640 }
@@ -620,12 +649,12 @@ pipeline {
620649 }
621650 else if (currentBuild. currentResult == " SUCCESS" ){
622651 sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 1681177,\
623- "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"}],\
652+ "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"}],\
624653 "username": "Jenkins"}' ${BUILDS_DISCORD} '''
625654 }
626655 else {
627656 sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 16711680,\
628- "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"}],\
657+ "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"}],\
629658 "username": "Jenkins"}' ${BUILDS_DISCORD} '''
630659 }
631660 }
0 commit comments