@@ -134,7 +134,7 @@ pipeline {
134134 script{
135135 env. IMAGE = env. DOCKERHUB_IMAGE
136136 if (env. MULTIARCH == ' true' ) {
137- 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
137+ 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
138138 } else {
139139 env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER
140140 }
@@ -152,7 +152,7 @@ pipeline {
152152 script{
153153 env. IMAGE = env. DEV_DOCKERHUB_IMAGE
154154 if (env. MULTIARCH == ' true' ) {
155- 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
155+ 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
156156 } else {
157157 env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA
158158 }
@@ -170,7 +170,7 @@ pipeline {
170170 script{
171171 env. IMAGE = env. PR_DOCKERHUB_IMAGE
172172 if (env. MULTIARCH == ' true' ) {
173- 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
173+ 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
174174 } else {
175175 env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
176176 }
@@ -180,6 +180,35 @@ pipeline {
180180 }
181181 }
182182 }
183+ // Run ShellCheck
184+ stage(' ShellCheck' ) {
185+ when {
186+ environment name : ' CI' , value : ' true'
187+ }
188+ steps {
189+ withCredentials([
190+ string(credentialsId : ' spaces-key' , variable : ' DO_KEY' ),
191+ string(credentialsId : ' spaces-secret' , variable : ' DO_SECRET' )
192+ ]) {
193+ script{
194+ env. SHELLCHECK_URL = ' https://lsio-ci.ams3.digitaloceanspaces.com/' + env. IMAGE + ' /' + env. META_TAG + ' /shellcheck-result.xml'
195+ }
196+ sh ''' curl -sL https://raw.githubusercontent.com/linuxserver/docker-shellcheck/master/checkrun.sh | /bin/bash'''
197+ sh ''' #! /bin/bash
198+ set -e
199+ docker pull lsiodev/spaces-file-upload:latest
200+ docker run --rm \
201+ -e DESTINATION=\" ${IMAGE}/${META_TAG}/shellcheck-result.xml\" \
202+ -e FILE_NAME="shellcheck-result.xml" \
203+ -e MIMETYPE="text/xml" \
204+ -v ${WORKSPACE}:/mnt \
205+ -e SECRET_KEY=\" ${DO_SECRET}\" \
206+ -e ACCESS_KEY=\" ${DO_KEY}\" \
207+ -t lsiodev/spaces-file-upload:latest \
208+ python /upload.py'''
209+ }
210+ }
211+ }
183212 // Use helper containers to render templated files
184213 stage(' Update-Templates' ) {
185214 when {
@@ -254,7 +283,7 @@ pipeline {
254283 environment name : ' EXIT_STATUS' , value : ' '
255284 }
256285 steps {
257- sh " docker build --no-cache -t ${ IMAGE} :${ META_TAG} \
286+ sh " docker build --no-cache --pull - t ${ IMAGE} :${ META_TAG} \
258287 --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
259288 }
260289 }
@@ -267,7 +296,7 @@ pipeline {
267296 parallel {
268297 stage(' Build X86' ) {
269298 steps {
270- sh " docker build --no-cache -t ${ IMAGE} :amd64-${ META_TAG} \
299+ sh " docker build --no-cache --pull - t ${ IMAGE} :amd64-${ META_TAG} \
271300 --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
272301 }
273302 }
@@ -290,13 +319,13 @@ pipeline {
290319 '''
291320 sh " curl https://lsio-ci.ams3.digitaloceanspaces.com/qemu-arm-static -o qemu-arm-static"
292321 sh " chmod +x qemu-*"
293- sh " docker build --no-cache -f Dockerfile.armhf -t ${ IMAGE} :arm32v6 -${ META_TAG} \
322+ sh " docker build --no-cache --pull - f Dockerfile.armhf -t ${ IMAGE} :arm32v7 -${ META_TAG} \
294323 --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
295- sh " docker tag ${ IMAGE} :arm32v6 -${ META_TAG} lsiodev/buildcache:arm32v6 -${ COMMIT_SHA} -${ BUILD_NUMBER} "
296- sh " docker push lsiodev/buildcache:arm32v6 -${ COMMIT_SHA} -${ BUILD_NUMBER} "
324+ sh " docker tag ${ IMAGE} :arm32v7 -${ META_TAG} lsiodev/buildcache:arm32v7 -${ COMMIT_SHA} -${ BUILD_NUMBER} "
325+ sh " docker push lsiodev/buildcache:arm32v7 -${ COMMIT_SHA} -${ BUILD_NUMBER} "
297326 sh ''' docker rmi \
298- ${IMAGE}:arm32v6 -${META_TAG} \
299- lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER} '''
327+ ${IMAGE}:arm32v7 -${META_TAG} \
328+ lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER} '''
300329 }
301330 }
302331 }
@@ -319,7 +348,7 @@ pipeline {
319348 '''
320349 sh " curl https://lsio-ci.ams3.digitaloceanspaces.com/qemu-aarch64-static -o qemu-aarch64-static"
321350 sh " chmod +x qemu-*"
322- sh " docker build --no-cache -f Dockerfile.aarch64 -t ${ IMAGE} :arm64v8-${ META_TAG} \
351+ sh " docker build --no-cache --pull - f Dockerfile.aarch64 -t ${ IMAGE} :arm64v8-${ META_TAG} \
323352 --build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
324353 sh " docker tag ${ IMAGE} :arm64v8-${ META_TAG} lsiodev/buildcache:arm64v8-${ COMMIT_SHA} -${ BUILD_NUMBER} "
325354 sh " docker push lsiodev/buildcache:arm64v8-${ COMMIT_SHA} -${ BUILD_NUMBER} "
@@ -349,13 +378,13 @@ pipeline {
349378 fi
350379 if [ "${DIST_IMAGE}" == "alpine" ]; then
351380 docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
352- apk info > packages && \
353- apk info -v > versions && \
354- paste -d " " packages versions > /tmp/package_versions.txt && \
381+ apk info -v > /tmp/package_versions.txt && \
382+ sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
355383 chmod 777 /tmp/package_versions.txt'
356384 elif [ "${DIST_IMAGE}" == "ubuntu" ]; then
357385 docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
358- apt list -qq --installed | cut -d" " -f1-2 > /tmp/package_versions.txt && \
386+ apt list -qq --installed | sed "s#/.*now ##g" | cut -d" " -f1 > /tmp/package_versions.txt && \
387+ sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
359388 chmod 777 /tmp/package_versions.txt'
360389 fi
361390 NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
@@ -435,9 +464,9 @@ pipeline {
435464 set -e
436465 docker pull lsiodev/ci:latest
437466 if [ "${MULTIARCH}" == "true" ]; then
438- docker pull lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER}
467+ docker pull lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER}
439468 docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
440- docker tag lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v6 -${META_TAG}
469+ docker tag lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7 -${META_TAG}
441470 docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
442471 fi
443472 docker run --rm \
@@ -514,38 +543,38 @@ pipeline {
514543 '''
515544 sh ''' #! /bin/bash
516545 if [ "${CI}" == "false" ]; then
517- docker pull lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER}
546+ docker pull lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER}
518547 docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
519- docker tag lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v6 -${META_TAG}
548+ docker tag lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7 -${META_TAG}
520549 docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
521550 fi'''
522551 sh " docker tag ${ IMAGE} :amd64-${ META_TAG} ${ IMAGE} :amd64-latest"
523- sh " docker tag ${ IMAGE} :arm32v6 -${ META_TAG} ${ IMAGE} :arm32v6 -latest"
552+ sh " docker tag ${ IMAGE} :arm32v7 -${ META_TAG} ${ IMAGE} :arm32v7 -latest"
524553 sh " docker tag ${ IMAGE} :arm64v8-${ META_TAG} ${ IMAGE} :arm64v8-latest"
525554 sh " docker push ${ IMAGE} :amd64-${ META_TAG} "
526- sh " docker push ${ IMAGE} :arm32v6 -${ META_TAG} "
555+ sh " docker push ${ IMAGE} :arm32v7 -${ META_TAG} "
527556 sh " docker push ${ IMAGE} :arm64v8-${ META_TAG} "
528557 sh " docker push ${ IMAGE} :amd64-latest"
529- sh " docker push ${ IMAGE} :arm32v6 -latest"
558+ sh " docker push ${ IMAGE} :arm32v7 -latest"
530559 sh " docker push ${ IMAGE} :arm64v8-latest"
531560 sh " docker manifest push --purge ${ IMAGE} :latest || :"
532- sh " docker manifest create ${ IMAGE} :latest ${ IMAGE} :amd64-latest ${ IMAGE} :arm32v6 -latest ${ IMAGE} :arm64v8-latest"
533- sh " docker manifest annotate ${ IMAGE} :latest ${ IMAGE} :arm32v6 -latest --os linux --arch arm"
561+ sh " docker manifest create ${ IMAGE} :latest ${ IMAGE} :amd64-latest ${ IMAGE} :arm32v7 -latest ${ IMAGE} :arm64v8-latest"
562+ sh " docker manifest annotate ${ IMAGE} :latest ${ IMAGE} :arm32v7 -latest --os linux --arch arm"
534563 sh " docker manifest annotate ${ IMAGE} :latest ${ IMAGE} :arm64v8-latest --os linux --arch arm64 --variant v8"
535564 sh " docker manifest push --purge ${ IMAGE} :${ META_TAG} || :"
536- sh " docker manifest create ${ IMAGE} :${ META_TAG} ${ IMAGE} :amd64-${ META_TAG} ${ IMAGE} :arm32v6 -${ META_TAG} ${ IMAGE} :arm64v8-${ META_TAG} "
537- sh " docker manifest annotate ${ IMAGE} :${ META_TAG} ${ IMAGE} :arm32v6 -${ META_TAG} --os linux --arch arm"
565+ sh " docker manifest create ${ IMAGE} :${ META_TAG} ${ IMAGE} :amd64-${ META_TAG} ${ IMAGE} :arm32v7 -${ META_TAG} ${ IMAGE} :arm64v8-${ META_TAG} "
566+ sh " docker manifest annotate ${ IMAGE} :${ META_TAG} ${ IMAGE} :arm32v7 -${ META_TAG} --os linux --arch arm"
538567 sh " docker manifest annotate ${ IMAGE} :${ META_TAG} ${ IMAGE} :arm64v8-${ META_TAG} --os linux --arch arm64 --variant v8"
539568 sh " docker manifest push --purge ${ IMAGE} :latest"
540569 sh " docker manifest push --purge ${ IMAGE} :${ META_TAG} "
541570 sh ''' docker rmi \
542571 ${IMAGE}:amd64-${META_TAG} \
543572 ${IMAGE}:amd64-latest \
544- ${IMAGE}:arm32v6 -${META_TAG} \
545- ${IMAGE}:arm32v6 -latest \
573+ ${IMAGE}:arm32v7 -${META_TAG} \
574+ ${IMAGE}:arm32v7 -latest \
546575 ${IMAGE}:arm64v8-${META_TAG} \
547576 ${IMAGE}:arm64v8-latest \
548- lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER} \
577+ lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER} \
549578 lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} '''
550579 }
551580 }
@@ -616,7 +645,7 @@ pipeline {
616645 }
617646 steps {
618647 sh ''' curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/issues/${PULL_REQUEST}/comments \
619- -d '{"body": "I am a bot, here are the test results for this PR '${CI_URL}'"}' '''
648+ -d '{"body": "I am a bot, here are the test results for this PR: \\ n '${CI_URL}' \\ n'${SHELLCHECK_URL }'"}' '''
620649 }
621650 }
622651 }
@@ -631,12 +660,12 @@ pipeline {
631660 }
632661 else if (currentBuild. currentResult == " SUCCESS" ){
633662 sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 1681177,\
634- "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"}],\
663+ "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"}],\
635664 "username": "Jenkins"}' ${BUILDS_DISCORD} '''
636665 }
637666 else {
638667 sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 16711680,\
639- "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"}],\
668+ "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"}],\
640669 "username": "Jenkins"}' ${BUILDS_DISCORD} '''
641670 }
642671 }
0 commit comments