@@ -122,7 +122,7 @@ pipeline {
122122 script{
123123 env. IMAGE = env. DOCKERHUB_IMAGE
124124 if (env. MULTIARCH == ' true' ) {
125- 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
125+ 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
126126 } else {
127127 env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER
128128 }
@@ -140,7 +140,7 @@ pipeline {
140140 script{
141141 env. IMAGE = env. DEV_DOCKERHUB_IMAGE
142142 if (env. MULTIARCH == ' true' ) {
143- 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
143+ 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
144144 } else {
145145 env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA
146146 }
@@ -158,7 +158,7 @@ pipeline {
158158 script{
159159 env. IMAGE = env. PR_DOCKERHUB_IMAGE
160160 if (env. MULTIARCH == ' true' ) {
161- 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
161+ 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
162162 } else {
163163 env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
164164 }
@@ -168,6 +168,35 @@ pipeline {
168168 }
169169 }
170170 }
171+ // Run ShellCheck
172+ stage(' ShellCheck' ) {
173+ when {
174+ environment name : ' CI' , value : ' true'
175+ }
176+ steps {
177+ withCredentials([
178+ string(credentialsId : ' spaces-key' , variable : ' DO_KEY' ),
179+ string(credentialsId : ' spaces-secret' , variable : ' DO_SECRET' )
180+ ]) {
181+ script{
182+ env. SHELLCHECK_URL = ' https://lsio-ci.ams3.digitaloceanspaces.com/' + env. IMAGE + ' /' + env. META_TAG + ' /shellcheck-result.xml'
183+ }
184+ sh ''' curl -sL https://raw.githubusercontent.com/linuxserver/docker-shellcheck/master/checkrun.sh | /bin/bash'''
185+ sh ''' #! /bin/bash
186+ set -e
187+ docker pull lsiodev/spaces-file-upload:latest
188+ docker run --rm \
189+ -e DESTINATION=\" ${IMAGE}/${META_TAG}/shellcheck-result.xml\" \
190+ -e FILE_NAME="shellcheck-result.xml" \
191+ -e MIMETYPE="text/xml" \
192+ -v ${WORKSPACE}:/mnt \
193+ -e SECRET_KEY=\" ${DO_SECRET}\" \
194+ -e ACCESS_KEY=\" ${DO_KEY}\" \
195+ -t lsiodev/spaces-file-upload:latest \
196+ python /upload.py'''
197+ }
198+ }
199+ }
171200 // Use helper containers to render templated files
172201 stage(' Update-Templates' ) {
173202 when {
@@ -242,7 +271,7 @@ pipeline {
242271 environment name : ' EXIT_STATUS' , value : ' '
243272 }
244273 steps {
245- sh " docker build --no-cache -t ${ IMAGE} :${ META_TAG} \
274+ sh " docker build --no-cache --pull - t ${ IMAGE} :${ META_TAG} \
246275 --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
247276 }
248277 }
@@ -255,7 +284,7 @@ pipeline {
255284 parallel {
256285 stage(' Build X86' ) {
257286 steps {
258- sh " docker build --no-cache -t ${ IMAGE} :amd64-${ META_TAG} \
287+ sh " docker build --no-cache --pull - t ${ IMAGE} :amd64-${ META_TAG} \
259288 --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
260289 }
261290 }
@@ -278,13 +307,13 @@ pipeline {
278307 '''
279308 sh " curl https://lsio-ci.ams3.digitaloceanspaces.com/qemu-arm-static -o qemu-arm-static"
280309 sh " chmod +x qemu-*"
281- sh " docker build --no-cache -f Dockerfile.armhf -t ${ IMAGE} :arm32v6 -${ META_TAG} \
310+ sh " docker build --no-cache --pull - f Dockerfile.armhf -t ${ IMAGE} :arm32v7 -${ META_TAG} \
282311 --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
283- sh " docker tag ${ IMAGE} :arm32v6 -${ META_TAG} lsiodev/buildcache:arm32v6 -${ COMMIT_SHA} -${ BUILD_NUMBER} "
284- sh " docker push lsiodev/buildcache:arm32v6 -${ COMMIT_SHA} -${ BUILD_NUMBER} "
312+ sh " docker tag ${ IMAGE} :arm32v7 -${ META_TAG} lsiodev/buildcache:arm32v7 -${ COMMIT_SHA} -${ BUILD_NUMBER} "
313+ sh " docker push lsiodev/buildcache:arm32v7 -${ COMMIT_SHA} -${ BUILD_NUMBER} "
285314 sh ''' docker rmi \
286- ${IMAGE}:arm32v6 -${META_TAG} \
287- lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER} '''
315+ ${IMAGE}:arm32v7 -${META_TAG} \
316+ lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER} '''
288317 }
289318 }
290319 }
@@ -307,7 +336,7 @@ pipeline {
307336 '''
308337 sh " curl https://lsio-ci.ams3.digitaloceanspaces.com/qemu-aarch64-static -o qemu-aarch64-static"
309338 sh " chmod +x qemu-*"
310- sh " docker build --no-cache -f Dockerfile.aarch64 -t ${ IMAGE} :arm64v8-${ META_TAG} \
339+ sh " docker build --no-cache --pull - f Dockerfile.aarch64 -t ${ IMAGE} :arm64v8-${ META_TAG} \
311340 --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
312341 sh " docker tag ${ IMAGE} :arm64v8-${ META_TAG} lsiodev/buildcache:arm64v8-${ COMMIT_SHA} -${ BUILD_NUMBER} "
313342 sh " docker push lsiodev/buildcache:arm64v8-${ COMMIT_SHA} -${ BUILD_NUMBER} "
@@ -337,13 +366,13 @@ pipeline {
337366 fi
338367 if [ "${DIST_IMAGE}" == "alpine" ]; then
339368 docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
340- apk info > packages && \
341- apk info -v > versions && \
342- paste -d " " packages versions > /tmp/package_versions.txt && \
369+ apk info -v > /tmp/package_versions.txt && \
370+ sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
343371 chmod 777 /tmp/package_versions.txt'
344372 elif [ "${DIST_IMAGE}" == "ubuntu" ]; then
345373 docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
346- apt list -qq --installed | cut -d" " -f1-2 > /tmp/package_versions.txt && \
374+ apt list -qq --installed | sed "s#/.*now ##g" | cut -d" " -f1 > /tmp/package_versions.txt && \
375+ sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
347376 chmod 777 /tmp/package_versions.txt'
348377 fi
349378 NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
@@ -423,9 +452,9 @@ pipeline {
423452 set -e
424453 docker pull lsiodev/ci:latest
425454 if [ "${MULTIARCH}" == "true" ]; then
426- docker pull lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER}
455+ docker pull lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER}
427456 docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
428- docker tag lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v6 -${META_TAG}
457+ docker tag lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7 -${META_TAG}
429458 docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
430459 fi
431460 docker run --rm \
@@ -502,38 +531,38 @@ pipeline {
502531 '''
503532 sh ''' #! /bin/bash
504533 if [ "${CI}" == "false" ]; then
505- docker pull lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER}
534+ docker pull lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER}
506535 docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
507- docker tag lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v6 -${META_TAG}
536+ docker tag lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7 -${META_TAG}
508537 docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
509538 fi'''
510539 sh " docker tag ${ IMAGE} :amd64-${ META_TAG} ${ IMAGE} :amd64-LTS"
511- sh " docker tag ${ IMAGE} :arm32v6 -${ META_TAG} ${ IMAGE} :arm32v6 -LTS"
540+ sh " docker tag ${ IMAGE} :arm32v7 -${ META_TAG} ${ IMAGE} :arm32v7 -LTS"
512541 sh " docker tag ${ IMAGE} :arm64v8-${ META_TAG} ${ IMAGE} :arm64v8-LTS"
513542 sh " docker push ${ IMAGE} :amd64-${ META_TAG} "
514- sh " docker push ${ IMAGE} :arm32v6 -${ META_TAG} "
543+ sh " docker push ${ IMAGE} :arm32v7 -${ META_TAG} "
515544 sh " docker push ${ IMAGE} :arm64v8-${ META_TAG} "
516545 sh " docker push ${ IMAGE} :amd64-LTS"
517- sh " docker push ${ IMAGE} :arm32v6 -LTS"
546+ sh " docker push ${ IMAGE} :arm32v7 -LTS"
518547 sh " docker push ${ IMAGE} :arm64v8-LTS"
519548 sh " docker manifest push --purge ${ IMAGE} :LTS || :"
520- sh " docker manifest create ${ IMAGE} :LTS ${ IMAGE} :amd64-LTS ${ IMAGE} :arm32v6 -LTS ${ IMAGE} :arm64v8-LTS"
521- sh " docker manifest annotate ${ IMAGE} :LTS ${ IMAGE} :arm32v6 -LTS --os linux --arch arm"
549+ sh " docker manifest create ${ IMAGE} :LTS ${ IMAGE} :amd64-LTS ${ IMAGE} :arm32v7 -LTS ${ IMAGE} :arm64v8-LTS"
550+ sh " docker manifest annotate ${ IMAGE} :LTS ${ IMAGE} :arm32v7 -LTS --os linux --arch arm"
522551 sh " docker manifest annotate ${ IMAGE} :LTS ${ IMAGE} :arm64v8-LTS --os linux --arch arm64 --variant v8"
523552 sh " docker manifest push --purge ${ IMAGE} :${ META_TAG} || :"
524- sh " docker manifest create ${ IMAGE} :${ META_TAG} ${ IMAGE} :amd64-${ META_TAG} ${ IMAGE} :arm32v6 -${ META_TAG} ${ IMAGE} :arm64v8-${ META_TAG} "
525- sh " docker manifest annotate ${ IMAGE} :${ META_TAG} ${ IMAGE} :arm32v6 -${ META_TAG} --os linux --arch arm"
553+ sh " docker manifest create ${ IMAGE} :${ META_TAG} ${ IMAGE} :amd64-${ META_TAG} ${ IMAGE} :arm32v7 -${ META_TAG} ${ IMAGE} :arm64v8-${ META_TAG} "
554+ sh " docker manifest annotate ${ IMAGE} :${ META_TAG} ${ IMAGE} :arm32v7 -${ META_TAG} --os linux --arch arm"
526555 sh " docker manifest annotate ${ IMAGE} :${ META_TAG} ${ IMAGE} :arm64v8-${ META_TAG} --os linux --arch arm64 --variant v8"
527556 sh " docker manifest push --purge ${ IMAGE} :LTS"
528557 sh " docker manifest push --purge ${ IMAGE} :${ META_TAG} "
529558 sh ''' docker rmi \
530559 ${IMAGE}:amd64-${META_TAG} \
531560 ${IMAGE}:amd64-LTS \
532- ${IMAGE}:arm32v6 -${META_TAG} \
533- ${IMAGE}:arm32v6 -LTS \
561+ ${IMAGE}:arm32v7 -${META_TAG} \
562+ ${IMAGE}:arm32v7 -LTS \
534563 ${IMAGE}:arm64v8-${META_TAG} \
535564 ${IMAGE}:arm64v8-LTS \
536- lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER} \
565+ lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER} \
537566 lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} '''
538567 }
539568 }
@@ -604,7 +633,7 @@ pipeline {
604633 }
605634 steps {
606635 sh ''' curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/issues/${PULL_REQUEST}/comments \
607- -d '{"body": "I am a bot, here are the test results for this PR '${CI_URL}'"}' '''
636+ -d '{"body": "I am a bot, here are the test results for this PR: \\ n '${CI_URL}' \\ n'${SHELLCHECK_URL }'"}' '''
608637 }
609638 }
610639 }
@@ -619,12 +648,12 @@ pipeline {
619648 }
620649 else if (currentBuild. currentResult == " SUCCESS" ){
621650 sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 1681177,\
622- "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"}],\
651+ "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"}],\
623652 "username": "Jenkins"}' ${BUILDS_DISCORD} '''
624653 }
625654 else {
626655 sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 16711680,\
627- "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"}],\
656+ "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"}],\
628657 "username": "Jenkins"}' ${BUILDS_DISCORD} '''
629658 }
630659 }
0 commit comments