@@ -134,7 +134,7 @@ pipeline {
134
134
script{
135
135
env. IMAGE = env. DOCKERHUB_IMAGE
136
136
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
138
138
} else {
139
139
env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -ls' + env. LS_TAG_NUMBER
140
140
}
@@ -152,7 +152,7 @@ pipeline {
152
152
script{
153
153
env. IMAGE = env. DEV_DOCKERHUB_IMAGE
154
154
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
156
156
} else {
157
157
env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev-' + env. COMMIT_SHA
158
158
}
@@ -170,7 +170,7 @@ pipeline {
170
170
script{
171
171
env. IMAGE = env. PR_DOCKERHUB_IMAGE
172
172
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
174
174
} else {
175
175
env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
176
176
}
@@ -180,6 +180,35 @@ pipeline {
180
180
}
181
181
}
182
182
}
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
+ }
183
212
// Use helper containers to render templated files
184
213
stage(' Update-Templates' ) {
185
214
when {
@@ -254,7 +283,7 @@ pipeline {
254
283
environment name : ' EXIT_STATUS' , value : ' '
255
284
}
256
285
steps {
257
- sh " docker build --no-cache -t ${ IMAGE} :${ META_TAG} \
286
+ sh " docker build --no-cache --pull - t ${ IMAGE} :${ META_TAG} \
258
287
--build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
259
288
}
260
289
}
@@ -267,7 +296,7 @@ pipeline {
267
296
parallel {
268
297
stage(' Build X86' ) {
269
298
steps {
270
- sh " docker build --no-cache -t ${ IMAGE} :amd64-${ META_TAG} \
299
+ sh " docker build --no-cache --pull - t ${ IMAGE} :amd64-${ META_TAG} \
271
300
--build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
272
301
}
273
302
}
@@ -290,13 +319,13 @@ pipeline {
290
319
'''
291
320
sh " curl https://lsio-ci.ams3.digitaloceanspaces.com/qemu-arm-static -o qemu-arm-static"
292
321
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} \
294
323
--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} "
297
326
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} '''
300
329
}
301
330
}
302
331
}
@@ -319,7 +348,7 @@ pipeline {
319
348
'''
320
349
sh " curl https://lsio-ci.ams3.digitaloceanspaces.com/qemu-aarch64-static -o qemu-aarch64-static"
321
350
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} \
323
352
--build-arg ${ BUILD_VERSION_ARG} =${ EXT_RELEASE} --build-arg VERSION=\" ${ META_TAG} \" --build-arg BUILD_DATE=${ GITHUB_DATE} ."
324
353
sh " docker tag ${ IMAGE} :arm64v8-${ META_TAG} lsiodev/buildcache:arm64v8-${ COMMIT_SHA} -${ BUILD_NUMBER} "
325
354
sh " docker push lsiodev/buildcache:arm64v8-${ COMMIT_SHA} -${ BUILD_NUMBER} "
@@ -349,13 +378,13 @@ pipeline {
349
378
fi
350
379
if [ "${DIST_IMAGE}" == "alpine" ]; then
351
380
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 && \
355
383
chmod 777 /tmp/package_versions.txt'
356
384
elif [ "${DIST_IMAGE}" == "ubuntu" ]; then
357
385
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 && \
359
388
chmod 777 /tmp/package_versions.txt'
360
389
fi
361
390
NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
@@ -435,9 +464,9 @@ pipeline {
435
464
set -e
436
465
docker pull lsiodev/ci:latest
437
466
if [ "${MULTIARCH}" == "true" ]; then
438
- docker pull lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER}
467
+ docker pull lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER}
439
468
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}
441
470
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
442
471
fi
443
472
docker run --rm \
@@ -514,38 +543,38 @@ pipeline {
514
543
'''
515
544
sh ''' #! /bin/bash
516
545
if [ "${CI}" == "false" ]; then
517
- docker pull lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER}
546
+ docker pull lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER}
518
547
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}
520
549
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
521
550
fi'''
522
551
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"
524
553
sh " docker tag ${ IMAGE} :arm64v8-${ META_TAG} ${ IMAGE} :arm64v8-latest"
525
554
sh " docker push ${ IMAGE} :amd64-${ META_TAG} "
526
- sh " docker push ${ IMAGE} :arm32v6 -${ META_TAG} "
555
+ sh " docker push ${ IMAGE} :arm32v7 -${ META_TAG} "
527
556
sh " docker push ${ IMAGE} :arm64v8-${ META_TAG} "
528
557
sh " docker push ${ IMAGE} :amd64-latest"
529
- sh " docker push ${ IMAGE} :arm32v6 -latest"
558
+ sh " docker push ${ IMAGE} :arm32v7 -latest"
530
559
sh " docker push ${ IMAGE} :arm64v8-latest"
531
560
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"
534
563
sh " docker manifest annotate ${ IMAGE} :latest ${ IMAGE} :arm64v8-latest --os linux --arch arm64 --variant v8"
535
564
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"
538
567
sh " docker manifest annotate ${ IMAGE} :${ META_TAG} ${ IMAGE} :arm64v8-${ META_TAG} --os linux --arch arm64 --variant v8"
539
568
sh " docker manifest push --purge ${ IMAGE} :latest"
540
569
sh " docker manifest push --purge ${ IMAGE} :${ META_TAG} "
541
570
sh ''' docker rmi \
542
571
${IMAGE}:amd64-${META_TAG} \
543
572
${IMAGE}:amd64-latest \
544
- ${IMAGE}:arm32v6 -${META_TAG} \
545
- ${IMAGE}:arm32v6 -latest \
573
+ ${IMAGE}:arm32v7 -${META_TAG} \
574
+ ${IMAGE}:arm32v7 -latest \
546
575
${IMAGE}:arm64v8-${META_TAG} \
547
576
${IMAGE}:arm64v8-latest \
548
- lsiodev/buildcache:arm32v6 -${COMMIT_SHA}-${BUILD_NUMBER} \
577
+ lsiodev/buildcache:arm32v7 -${COMMIT_SHA}-${BUILD_NUMBER} \
549
578
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} '''
550
579
}
551
580
}
@@ -616,7 +645,7 @@ pipeline {
616
645
}
617
646
steps {
618
647
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 }'"}' '''
620
649
}
621
650
}
622
651
}
@@ -631,12 +660,12 @@ pipeline {
631
660
}
632
661
else if (currentBuild. currentResult == " SUCCESS" ){
633
662
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"}],\
635
664
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
636
665
}
637
666
else {
638
667
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"}],\
640
669
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
641
670
}
642
671
}
0 commit comments