@@ -120,7 +120,7 @@ pipeline {
120120 script{
121121 env. IMAGE = env. DOCKERHUB_IMAGE
122122 if (env. MULTIARCH == ' true' ) {
123- 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
123+ 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
124124 } else {
125125 env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER
126126 }
@@ -138,7 +138,7 @@ pipeline {
138138 script{
139139 env. IMAGE = env. DEV_DOCKERHUB_IMAGE
140140 if (env. MULTIARCH == ' true' ) {
141- 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
141+ 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
142142 } else {
143143 env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA
144144 }
@@ -156,7 +156,7 @@ pipeline {
156156 script{
157157 env. IMAGE = env. PR_DOCKERHUB_IMAGE
158158 if (env. MULTIARCH == ' true' ) {
159- 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
159+ 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
160160 } else {
161161 env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
162162 }
@@ -166,6 +166,35 @@ pipeline {
166166 }
167167 }
168168 }
169+ // Run ShellCheck
170+ stage(' ShellCheck' ) {
171+ when {
172+ environment name : ' CI' , value : ' true'
173+ }
174+ steps {
175+ withCredentials([
176+ string(credentialsId : ' spaces-key' , variable : ' DO_KEY' ),
177+ string(credentialsId : ' spaces-secret' , variable : ' DO_SECRET' )
178+ ]) {
179+ script{
180+ env. SHELLCHECK_URL = ' https://lsio-ci.ams3.digitaloceanspaces.com/' + env. IMAGE + ' /' + env. META_TAG + ' /shellcheck-result.xml'
181+ }
182+ sh ''' curl -sL https://raw.githubusercontent.com/linuxserver/docker-shellcheck/master/checkrun.sh | /bin/bash'''
183+ sh ''' #! /bin/bash
184+ set -e
185+ docker pull lsiodev/spaces-file-upload:latest
186+ docker run --rm \
187+ -e DESTINATION=\" ${IMAGE}/${META_TAG}/shellcheck-result.xml\" \
188+ -e FILE_NAME="shellcheck-result.xml" \
189+ -e MIMETYPE="text/xml" \
190+ -v ${WORKSPACE}:/mnt \
191+ -e SECRET_KEY=\" ${DO_SECRET}\" \
192+ -e ACCESS_KEY=\" ${DO_KEY}\" \
193+ -t lsiodev/spaces-file-upload:latest \
194+ python /upload.py'''
195+ }
196+ }
197+ }
169198 // Use helper containers to render templated files
170199 stage(' Update-Templates' ) {
171200 when {
@@ -240,7 +269,7 @@ pipeline {
240269 environment name : ' EXIT_STATUS' , value : ' '
241270 }
242271 steps {
243- sh " docker build --no-cache -t ${ IMAGE} :${ META_TAG} \
272+ sh " docker build --no-cache --pull - t ${ IMAGE} :${ META_TAG} \
244273 --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
245274 }
246275 }
@@ -253,7 +282,7 @@ pipeline {
253282 parallel {
254283 stage(' Build X86' ) {
255284 steps {
256- sh " docker build --no-cache -t ${ IMAGE} :amd64-${ META_TAG} \
285+ sh " docker build --no-cache --pull - t ${ IMAGE} :amd64-${ META_TAG} \
257286 --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
258287 }
259288 }
@@ -276,13 +305,13 @@ pipeline {
276305 '''
277306 sh " curl https://lsio-ci.ams3.digitaloceanspaces.com/qemu-arm-static -o qemu-arm-static"
278307 sh " chmod +x qemu-*"
279- sh " docker build --no-cache -f Dockerfile.armhf -t ${ IMAGE} :arm32v6 -${ META_TAG} \
308+ sh " docker build --no-cache --pull - f Dockerfile.armhf -t ${ IMAGE} :arm32v7 -${ META_TAG} \
280309 --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
281- sh " docker tag ${ IMAGE} :arm32v6 -${ META_TAG} lsiodev/buildcache:arm32v6 -${ COMMIT_SHA} -${ BUILD_NUMBER} "
282- sh " docker push lsiodev/buildcache:arm32v6 -${ COMMIT_SHA} -${ BUILD_NUMBER} "
310+ sh " docker tag ${ IMAGE} :arm32v7 -${ META_TAG} lsiodev/buildcache:arm32v7 -${ COMMIT_SHA} -${ BUILD_NUMBER} "
311+ sh " docker push lsiodev/buildcache:arm32v7 -${ COMMIT_SHA} -${ BUILD_NUMBER} "
283312 sh ''' docker rmi \
284- ${IMAGE}:arm32v6 -${META_TAG} \
285- lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER} '''
313+ ${IMAGE}:arm32v7 -${META_TAG} \
314+ lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER} '''
286315 }
287316 }
288317 }
@@ -305,7 +334,7 @@ pipeline {
305334 '''
306335 sh " curl https://lsio-ci.ams3.digitaloceanspaces.com/qemu-aarch64-static -o qemu-aarch64-static"
307336 sh " chmod +x qemu-*"
308- sh " docker build --no-cache -f Dockerfile.aarch64 -t ${ IMAGE} :arm64v8-${ META_TAG} \
337+ sh " docker build --no-cache --pull - f Dockerfile.aarch64 -t ${ IMAGE} :arm64v8-${ META_TAG} \
309338 --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
310339 sh " docker tag ${ IMAGE} :arm64v8-${ META_TAG} lsiodev/buildcache:arm64v8-${ COMMIT_SHA} -${ BUILD_NUMBER} "
311340 sh " docker push lsiodev/buildcache:arm64v8-${ COMMIT_SHA} -${ BUILD_NUMBER} "
@@ -335,13 +364,13 @@ pipeline {
335364 fi
336365 if [ "${DIST_IMAGE}" == "alpine" ]; then
337366 docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
338- apk info > packages && \
339- apk info -v > versions && \
340- paste -d " " packages versions > /tmp/package_versions.txt && \
367+ apk info -v > /tmp/package_versions.txt && \
368+ sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
341369 chmod 777 /tmp/package_versions.txt'
342370 elif [ "${DIST_IMAGE}" == "ubuntu" ]; then
343371 docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
344- apt list -qq --installed | cut -d" " -f1-2 > /tmp/package_versions.txt && \
372+ apt list -qq --installed | sed "s#/.*now ##g" | cut -d" " -f1 > /tmp/package_versions.txt && \
373+ sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
345374 chmod 777 /tmp/package_versions.txt'
346375 fi
347376 NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
@@ -421,9 +450,9 @@ pipeline {
421450 set -e
422451 docker pull lsiodev/ci:latest
423452 if [ "${MULTIARCH}" == "true" ]; then
424- docker pull lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER}
453+ docker pull lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER}
425454 docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
426- docker tag lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v6 -${META_TAG}
455+ docker tag lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7 -${META_TAG}
427456 docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
428457 fi
429458 docker run --rm \
@@ -500,38 +529,38 @@ pipeline {
500529 '''
501530 sh ''' #! /bin/bash
502531 if [ "${CI}" == "false" ]; then
503- docker pull lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER}
532+ docker pull lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER}
504533 docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
505- docker tag lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v6 -${META_TAG}
534+ docker tag lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7 -${META_TAG}
506535 docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
507536 fi'''
508537 sh " docker tag ${ IMAGE} :amd64-${ META_TAG} ${ IMAGE} :amd64-latest"
509- sh " docker tag ${ IMAGE} :arm32v6 -${ META_TAG} ${ IMAGE} :arm32v6 -latest"
538+ sh " docker tag ${ IMAGE} :arm32v7 -${ META_TAG} ${ IMAGE} :arm32v7 -latest"
510539 sh " docker tag ${ IMAGE} :arm64v8-${ META_TAG} ${ IMAGE} :arm64v8-latest"
511540 sh " docker push ${ IMAGE} :amd64-${ META_TAG} "
512- sh " docker push ${ IMAGE} :arm32v6 -${ META_TAG} "
541+ sh " docker push ${ IMAGE} :arm32v7 -${ META_TAG} "
513542 sh " docker push ${ IMAGE} :arm64v8-${ META_TAG} "
514543 sh " docker push ${ IMAGE} :amd64-latest"
515- sh " docker push ${ IMAGE} :arm32v6 -latest"
544+ sh " docker push ${ IMAGE} :arm32v7 -latest"
516545 sh " docker push ${ IMAGE} :arm64v8-latest"
517546 sh " docker manifest push --purge ${ IMAGE} :latest || :"
518- sh " docker manifest create ${ IMAGE} :latest ${ IMAGE} :amd64-latest ${ IMAGE} :arm32v6 -latest ${ IMAGE} :arm64v8-latest"
519- sh " docker manifest annotate ${ IMAGE} :latest ${ IMAGE} :arm32v6 -latest --os linux --arch arm"
547+ sh " docker manifest create ${ IMAGE} :latest ${ IMAGE} :amd64-latest ${ IMAGE} :arm32v7 -latest ${ IMAGE} :arm64v8-latest"
548+ sh " docker manifest annotate ${ IMAGE} :latest ${ IMAGE} :arm32v7 -latest --os linux --arch arm"
520549 sh " docker manifest annotate ${ IMAGE} :latest ${ IMAGE} :arm64v8-latest --os linux --arch arm64 --variant v8"
521550 sh " docker manifest push --purge ${ IMAGE} :${ META_TAG} || :"
522- sh " docker manifest create ${ IMAGE} :${ META_TAG} ${ IMAGE} :amd64-${ META_TAG} ${ IMAGE} :arm32v6 -${ META_TAG} ${ IMAGE} :arm64v8-${ META_TAG} "
523- sh " docker manifest annotate ${ IMAGE} :${ META_TAG} ${ IMAGE} :arm32v6 -${ META_TAG} --os linux --arch arm"
551+ sh " docker manifest create ${ IMAGE} :${ META_TAG} ${ IMAGE} :amd64-${ META_TAG} ${ IMAGE} :arm32v7 -${ META_TAG} ${ IMAGE} :arm64v8-${ META_TAG} "
552+ sh " docker manifest annotate ${ IMAGE} :${ META_TAG} ${ IMAGE} :arm32v7 -${ META_TAG} --os linux --arch arm"
524553 sh " docker manifest annotate ${ IMAGE} :${ META_TAG} ${ IMAGE} :arm64v8-${ META_TAG} --os linux --arch arm64 --variant v8"
525554 sh " docker manifest push --purge ${ IMAGE} :latest"
526555 sh " docker manifest push --purge ${ IMAGE} :${ META_TAG} "
527556 sh ''' docker rmi \
528557 ${IMAGE}:amd64-${META_TAG} \
529558 ${IMAGE}:amd64-latest \
530- ${IMAGE}:arm32v6 -${META_TAG} \
531- ${IMAGE}:arm32v6 -latest \
559+ ${IMAGE}:arm32v7 -${META_TAG} \
560+ ${IMAGE}:arm32v7 -latest \
532561 ${IMAGE}:arm64v8-${META_TAG} \
533562 ${IMAGE}:arm64v8-latest \
534- lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER} \
563+ lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER} \
535564 lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} '''
536565 }
537566 }
@@ -602,7 +631,7 @@ pipeline {
602631 }
603632 steps {
604633 sh ''' curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/issues/${PULL_REQUEST}/comments \
605- -d '{"body": "I am a bot, here are the test results for this PR '${CI_URL}'"}' '''
634+ -d '{"body": "I am a bot, here are the test results for this PR: \\ n '${CI_URL}' \\ n'${SHELLCHECK_URL }'"}' '''
606635 }
607636 }
608637 }
@@ -617,12 +646,12 @@ pipeline {
617646 }
618647 else if (currentBuild. currentResult == " SUCCESS" ){
619648 sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 1681177,\
620- "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"}],\
649+ "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"}],\
621650 "username": "Jenkins"}' ${BUILDS_DISCORD} '''
622651 }
623652 else {
624653 sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 16711680,\
625- "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"}],\
654+ "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"}],\
626655 "username": "Jenkins"}' ${BUILDS_DISCORD} '''
627656 }
628657 }
0 commit comments