@@ -42,7 +42,12 @@ pipeline {
42
42
// Setup all the basic environment variables needed for the build
43
43
stage(" Set ENV Variables base" ){
44
44
steps{
45
- sh ''' docker pull quay.io/skopeo/stable:v1 || : '''
45
+ sh ''' #! /bin/bash
46
+ containers=$(docker ps -aq)
47
+ if [[ -n "${containers}" ]]; then
48
+ docker stop ${containers}
49
+ fi
50
+ docker system prune -af --volumes || : '''
46
51
script{
47
52
env. EXIT_STATUS = ' '
48
53
env. LS_RELEASE = sh(
@@ -208,12 +213,12 @@ pipeline {
208
213
env. GITLABIMAGE = ' registry.gitlab.com/linuxserver.io/' + env. LS_REPO + ' /lspipepr-' + env. CONTAINER_NAME
209
214
env. QUAYIMAGE = ' quay.io/linuxserver.io/lspipepr-' + env. CONTAINER_NAME
210
215
if (env. MULTIARCH == ' true' ) {
211
- 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
216
+ 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
212
217
} else {
213
- env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
218
+ env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev- ' + env . COMMIT_SHA + ' - pr-' + env. PULL_REQUEST
214
219
}
215
- env. VERSION_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
216
- env. META_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
220
+ env. VERSION_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev- ' + env . COMMIT_SHA + ' - pr-' + env. PULL_REQUEST
221
+ env. META_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev- ' + env . COMMIT_SHA + ' - pr-' + env. PULL_REQUEST
217
222
env. EXT_RELEASE_TAG = ' version-' + env. EXT_RELEASE_CLEAN
218
223
env. CODE_URL = ' https://github.com/' + env. LS_USER + ' /' + env. LS_REPO + ' /pull/' + env. PULL_REQUEST
219
224
env. DOCKERHUB_LINK = ' https://hub.docker.com/r/' + env. PR_DOCKERHUB_IMAGE + ' /tags/'
@@ -341,6 +346,8 @@ pipeline {
341
346
git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
342
347
if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
343
348
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
349
+ elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then
350
+ 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
344
351
fi
345
352
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
346
353
cd ${TEMPDIR}/unraid/templates/
@@ -432,8 +439,7 @@ pipeline {
432
439
}
433
440
steps{
434
441
sh ''' #! /bin/bash
435
- set -e
436
- PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/sqlitebrowser") | .uuid')
442
+ PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/sqlitebrowser") | .uuid' || :)
437
443
if [ -z "${PACKAGE_UUID}" ]; then
438
444
echo "Adding package to Scarf.sh"
439
445
curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
@@ -543,9 +549,12 @@ pipeline {
543
549
retry(5 ) {
544
550
sh " docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${ COMMIT_SHA} -${ BUILD_NUMBER} "
545
551
}
546
- sh ''' docker rmi \
547
- ${IMAGE}:arm64v8-${META_TAG} \
548
- ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
552
+ sh ''' #! /bin/bash
553
+ containers=$(docker ps -aq)
554
+ if [[ -n "${containers}" ]]; then
555
+ docker stop ${containers}
556
+ fi
557
+ docker system prune -af --volumes || : '''
549
558
}
550
559
}
551
560
}
@@ -606,13 +615,6 @@ pipeline {
606
615
environment name : ' EXIT_STATUS' , value : ' '
607
616
}
608
617
steps {
609
- sh ''' #! /bin/bash
610
- echo "Packages were updated. Cleaning up the image and exiting."
611
- if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
612
- docker rmi ${IMAGE}:amd64-${META_TAG}
613
- else
614
- docker rmi ${IMAGE}:${META_TAG}
615
- fi'''
616
618
script{
617
619
env. EXIT_STATUS = ' ABORTED'
618
620
}
@@ -630,13 +632,6 @@ pipeline {
630
632
}
631
633
}
632
634
steps {
633
- sh ''' #! /bin/bash
634
- echo "There are no package updates. Cleaning up the image and exiting."
635
- if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
636
- docker rmi ${IMAGE}:amd64-${META_TAG}
637
- else
638
- docker rmi ${IMAGE}:${META_TAG}
639
- fi'''
640
635
script{
641
636
env. EXIT_STATUS = ' ABORTED'
642
637
}
@@ -735,17 +730,6 @@ pipeline {
735
730
done
736
731
'''
737
732
}
738
- sh ''' #! /bin/bash
739
- for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
740
- docker rmi \
741
- ${DELETEIMAGE}:${META_TAG} \
742
- ${DELETEIMAGE}:${EXT_RELEASE_TAG} \
743
- ${DELETEIMAGE}:latest || :
744
- if [ -n "${SEMVER}" ]; then
745
- docker rmi ${DELETEIMAGE}:${SEMVER} || :
746
- fi
747
- done
748
- '''
749
733
}
750
734
}
751
735
}
@@ -816,9 +800,16 @@ pipeline {
816
800
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
817
801
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
818
802
fi
819
- docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest || :
820
- docker manifest create ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:amd64-latest
821
- docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest
803
+ token=$(curl -sX GET "https://ghcr.io/token?scope=repository%3Alinuxserver%2F${CONTAINER_NAME}%3Apull" | jq -r '.token')
804
+ digest=$(curl -s \
805
+ --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
806
+ --header "Authorization: Bearer ${token}" \
807
+ "https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-latest")
808
+ if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then
809
+ docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest || :
810
+ docker manifest create ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:amd64-latest
811
+ docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest
812
+ fi
822
813
docker manifest push --purge ${MANIFESTIMAGE}:latest
823
814
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
824
815
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
@@ -828,24 +819,6 @@ pipeline {
828
819
done
829
820
'''
830
821
}
831
- sh ''' #! /bin/bash
832
- for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
833
- docker rmi \
834
- ${DELETEIMAGE}:amd64-${META_TAG} \
835
- ${DELETEIMAGE}:amd64-latest \
836
- ${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
837
- ${DELETEIMAGE}:arm64v8-${META_TAG} \
838
- ${DELETEIMAGE}:arm64v8-latest \
839
- ${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
840
- if [ -n "${SEMVER}" ]; then
841
- docker rmi \
842
- ${DELETEIMAGE}:amd64-${SEMVER} \
843
- ${DELETEIMAGE}:arm64v8-${SEMVER} || :
844
- fi
845
- done
846
- docker rmi \
847
- ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :
848
- '''
849
822
}
850
823
}
851
824
}
@@ -916,7 +889,6 @@ pipeline {
916
889
stage(' Pull Request Comment' ) {
917
890
when {
918
891
not {environment name : ' CHANGE_ID' , value : ' ' }
919
- environment name : ' CI' , value : ' true'
920
892
environment name : ' EXIT_STATUS' , value : ' '
921
893
}
922
894
steps {
@@ -970,16 +942,24 @@ pipeline {
970
942
echo "$escaped_table"
971
943
}
972
944
973
- # Retrieve JSON data from URL
974
- data=$(get_json "$CI_JSON_URL")
975
- # Create table from JSON data
976
- table=$(build_table "$data")
977
- echo -e "$table"
945
+ if [[ "${CI}" = "true" ]]; then
946
+ # Retrieve JSON data from URL
947
+ data=$(get_json "$CI_JSON_URL")
948
+ # Create table from JSON data
949
+ table=$(build_table "$data")
950
+ echo -e "$table"
978
951
979
- curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
980
- -H "Accept: application/vnd.github.v3+json" \
981
- "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
982
- -d "{\\ "body\\ ": \\ "I am a bot, here are the test results for this PR: \\ n${CI_URL}\\ n${SHELLCHECK_URL}\\ n${table}\\ "}"'''
952
+ curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
953
+ -H "Accept: application/vnd.github.v3+json" \
954
+ "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
955
+ -d "{\\ "body\\ ": \\ "I am a bot, here are the test results for this PR: \\ n${CI_URL}\\ n${SHELLCHECK_URL}\\ n${table}\\ "}"
956
+ else
957
+ curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
958
+ -H "Accept: application/vnd.github.v3+json" \
959
+ "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
960
+ -d "{\\ "body\\ ": \\ "I am a bot, here is the pushed image/manifest for this PR: \\ n\\ n\\ `${GITHUBIMAGE}:${META_TAG}\\ `\\ "}"
961
+ fi
962
+ '''
983
963
984
964
}
985
965
}
@@ -1006,6 +986,14 @@ pipeline {
1006
986
}
1007
987
}
1008
988
cleanup {
989
+ sh ''' #! /bin/bash
990
+ echo "Performing docker system prune!!"
991
+ containers=$(docker ps -aq)
992
+ if [[ -n "${containers}" ]]; then
993
+ docker stop ${containers}
994
+ fi
995
+ docker system prune -af --volumes || :
996
+ '''
1009
997
cleanWs()
1010
998
}
1011
999
}
0 commit comments