@@ -39,7 +39,12 @@ pipeline {
39
39
// Setup all the basic environment variables needed for the build
40
40
stage(" Set ENV Variables base" ){
41
41
steps{
42
- sh ''' docker pull quay.io/skopeo/stable:v1 || : '''
42
+ sh ''' #! /bin/bash
43
+ containers=$(docker ps -aq)
44
+ if [[ -n "${containers}" ]]; then
45
+ docker stop ${containers}
46
+ fi
47
+ docker system prune -af --volumes || : '''
43
48
script{
44
49
env. EXIT_STATUS = ' '
45
50
env. LS_RELEASE = sh(
@@ -204,12 +209,12 @@ pipeline {
204
209
env. GITLABIMAGE = ' registry.gitlab.com/linuxserver.io/' + env. LS_REPO + ' /lspipepr-' + env. CONTAINER_NAME
205
210
env. QUAYIMAGE = ' quay.io/linuxserver.io/lspipepr-' + env. CONTAINER_NAME
206
211
if (env. MULTIARCH == ' true' ) {
207
- env. CI_TAGS = ' amd64-' + 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
212
+ env. CI_TAGS = ' amd64-' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev- ' + env . COMMIT_SHA + ' - pr-' + env. PULL_REQUEST + ' |arm64v8-' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev- ' + env . COMMIT_SHA + ' -pr-' + env. PULL_REQUEST
208
213
} else {
209
- env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
214
+ env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev- ' + env . COMMIT_SHA + ' - pr-' + env. PULL_REQUEST
210
215
}
211
- env. VERSION_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
212
- env. META_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
216
+ env. VERSION_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev- ' + env . COMMIT_SHA + ' - pr-' + env. PULL_REQUEST
217
+ env. META_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev- ' + env . COMMIT_SHA + ' - pr-' + env. PULL_REQUEST
213
218
env. EXT_RELEASE_TAG = ' version-' + env. EXT_RELEASE_CLEAN
214
219
env. CODE_URL = ' https://github.com/' + env. LS_USER + ' /' + env. LS_REPO + ' /pull/' + env. PULL_REQUEST
215
220
env. DOCKERHUB_LINK = ' https://hub.docker.com/r/' + env. PR_DOCKERHUB_IMAGE + ' /tags/'
@@ -337,6 +342,8 @@ pipeline {
337
342
git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
338
343
if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
339
344
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
345
+ elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then
346
+ sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-icon.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
340
347
fi
341
348
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then
342
349
cd ${TEMPDIR}/unraid/templates/
@@ -428,8 +435,7 @@ pipeline {
428
435
}
429
436
steps{
430
437
sh ''' #! /bin/bash
431
- set -e
432
- PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/unifi-controller") | .uuid')
438
+ PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/unifi-controller") | .uuid' || :)
433
439
if [ -z "${PACKAGE_UUID}" ]; then
434
440
echo "Adding package to Scarf.sh"
435
441
curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
@@ -539,9 +545,12 @@ pipeline {
539
545
retry(5 ) {
540
546
sh " docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${ COMMIT_SHA} -${ BUILD_NUMBER} "
541
547
}
542
- sh ''' docker rmi \
543
- ${IMAGE}:arm64v8-${META_TAG} \
544
- ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
548
+ sh ''' #! /bin/bash
549
+ containers=$(docker ps -aq)
550
+ if [[ -n "${containers}" ]]; then
551
+ docker stop ${containers}
552
+ fi
553
+ docker system prune -af --volumes || : '''
545
554
}
546
555
}
547
556
}
@@ -602,13 +611,6 @@ pipeline {
602
611
environment name : ' EXIT_STATUS' , value : ' '
603
612
}
604
613
steps {
605
- sh ''' #! /bin/bash
606
- echo "Packages were updated. Cleaning up the image and exiting."
607
- if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
608
- docker rmi ${IMAGE}:amd64-${META_TAG}
609
- else
610
- docker rmi ${IMAGE}:${META_TAG}
611
- fi'''
612
614
script{
613
615
env. EXIT_STATUS = ' ABORTED'
614
616
}
@@ -626,13 +628,6 @@ pipeline {
626
628
}
627
629
}
628
630
steps {
629
- sh ''' #! /bin/bash
630
- echo "There are no package updates. Cleaning up the image and exiting."
631
- if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
632
- docker rmi ${IMAGE}:amd64-${META_TAG}
633
- else
634
- docker rmi ${IMAGE}:${META_TAG}
635
- fi'''
636
631
script{
637
632
env. EXIT_STATUS = ' ABORTED'
638
633
}
@@ -731,17 +726,6 @@ pipeline {
731
726
done
732
727
'''
733
728
}
734
- sh ''' #! /bin/bash
735
- for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
736
- docker rmi \
737
- ${DELETEIMAGE}:${META_TAG} \
738
- ${DELETEIMAGE}:${EXT_RELEASE_TAG} \
739
- ${DELETEIMAGE}:latest || :
740
- if [ -n "${SEMVER}" ]; then
741
- docker rmi ${DELETEIMAGE}:${SEMVER} || :
742
- fi
743
- done
744
- '''
745
729
}
746
730
}
747
731
}
@@ -812,9 +796,16 @@ pipeline {
812
796
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
813
797
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
814
798
fi
815
- docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest || :
816
- docker manifest create ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:amd64-latest
817
- docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest
799
+ token=$(curl -sX GET "https://ghcr.io/token?scope=repository%3Alinuxserver%2F${CONTAINER_NAME}%3Apull" | jq -r '.token')
800
+ digest=$(curl -s \
801
+ --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
802
+ --header "Authorization: Bearer ${token}" \
803
+ "https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-latest")
804
+ if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then
805
+ docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest || :
806
+ docker manifest create ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:amd64-latest
807
+ docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest
808
+ fi
818
809
docker manifest push --purge ${MANIFESTIMAGE}:latest
819
810
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
820
811
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
@@ -824,24 +815,6 @@ pipeline {
824
815
done
825
816
'''
826
817
}
827
- sh ''' #! /bin/bash
828
- for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
829
- docker rmi \
830
- ${DELETEIMAGE}:amd64-${META_TAG} \
831
- ${DELETEIMAGE}:amd64-latest \
832
- ${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
833
- ${DELETEIMAGE}:arm64v8-${META_TAG} \
834
- ${DELETEIMAGE}:arm64v8-latest \
835
- ${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
836
- if [ -n "${SEMVER}" ]; then
837
- docker rmi \
838
- ${DELETEIMAGE}:amd64-${SEMVER} \
839
- ${DELETEIMAGE}:arm64v8-${SEMVER} || :
840
- fi
841
- done
842
- docker rmi \
843
- ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :
844
- '''
845
818
}
846
819
}
847
820
}
@@ -912,7 +885,6 @@ pipeline {
912
885
stage(' Pull Request Comment' ) {
913
886
when {
914
887
not {environment name : ' CHANGE_ID' , value : ' ' }
915
- environment name : ' CI' , value : ' true'
916
888
environment name : ' EXIT_STATUS' , value : ' '
917
889
}
918
890
steps {
@@ -966,16 +938,24 @@ pipeline {
966
938
echo "$escaped_table"
967
939
}
968
940
969
- # Retrieve JSON data from URL
970
- data=$(get_json "$CI_JSON_URL")
971
- # Create table from JSON data
972
- table=$(build_table "$data")
973
- echo -e "$table"
941
+ if [[ "${CI}" = "true" ]]; then
942
+ # Retrieve JSON data from URL
943
+ data=$(get_json "$CI_JSON_URL")
944
+ # Create table from JSON data
945
+ table=$(build_table "$data")
946
+ echo -e "$table"
974
947
975
- curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
976
- -H "Accept: application/vnd.github.v3+json" \
977
- "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
978
- -d "{\\ "body\\ ": \\ "I am a bot, here are the test results for this PR: \\ n${CI_URL}\\ n${SHELLCHECK_URL}\\ n${table}\\ "}"'''
948
+ curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
949
+ -H "Accept: application/vnd.github.v3+json" \
950
+ "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
951
+ -d "{\\ "body\\ ": \\ "I am a bot, here are the test results for this PR: \\ n${CI_URL}\\ n${SHELLCHECK_URL}\\ n${table}\\ "}"
952
+ else
953
+ curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
954
+ -H "Accept: application/vnd.github.v3+json" \
955
+ "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
956
+ -d "{\\ "body\\ ": \\ "I am a bot, here is the pushed image/manifest for this PR: \\ n\\ n\\ `${GITHUBIMAGE}:${META_TAG}\\ `\\ "}"
957
+ fi
958
+ '''
979
959
980
960
}
981
961
}
@@ -1002,6 +982,14 @@ pipeline {
1002
982
}
1003
983
}
1004
984
cleanup {
985
+ sh ''' #! /bin/bash
986
+ echo "Performing docker system prune!!"
987
+ containers=$(docker ps -aq)
988
+ if [[ -n "${containers}" ]]; then
989
+ docker stop ${containers}
990
+ fi
991
+ docker system prune -af --volumes || :
992
+ '''
1005
993
cleanWs()
1006
994
}
1007
995
}
0 commit comments