@@ -42,7 +42,12 @@ pipeline {
4242 // Setup all the basic environment variables needed for the build
4343 stage(" Set ENV Variables base" ){
4444 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 || : '''
4651 script{
4752 env. EXIT_STATUS = ' '
4853 env. LS_RELEASE = sh(
@@ -208,12 +213,12 @@ pipeline {
208213 env. GITLABIMAGE = ' registry.gitlab.com/linuxserver.io/' + env. LS_REPO + ' /lspipepr-' + env. CONTAINER_NAME
209214 env. QUAYIMAGE = ' quay.io/linuxserver.io/lspipepr-' + env. CONTAINER_NAME
210215 if (env. MULTIARCH == ' true' ) {
211- 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
216+ env. CI_TAGS = ' amd64-' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev- ' + env . COMMIT_SHA + ' - pr-' + env. PULL_REQUEST + ' |arm32v7-' + 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
212217 } 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
214219 }
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
217222 env. EXT_RELEASE_TAG = ' version-' + env. EXT_RELEASE_CLEAN
218223 env. CODE_URL = ' https://github.com/' + env. LS_USER + ' /' + env. LS_REPO + ' /pull/' + env. PULL_REQUEST
219224 env. DOCKERHUB_LINK = ' https://hub.docker.com/r/' + env. PR_DOCKERHUB_IMAGE + ' /tags/'
@@ -341,6 +346,8 @@ pipeline {
341346 git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
342347 if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
343348 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
344351 fi
345352 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
346353 cd ${TEMPDIR}/unraid/templates/
@@ -432,8 +439,7 @@ pipeline {
432439 }
433440 steps{
434441 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/nginx") | .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/nginx") | .uuid' || :)
437443 if [ -z "${PACKAGE_UUID}" ]; then
438444 echo "Adding package to Scarf.sh"
439445 curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
@@ -543,9 +549,12 @@ pipeline {
543549 retry(5 ) {
544550 sh " docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${ COMMIT_SHA} -${ BUILD_NUMBER} "
545551 }
546- sh ''' docker rmi \
547- ${IMAGE}:arm32v7-${META_TAG} \
548- ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${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 || : '''
549558 }
550559 }
551560 stage(' Build ARM64' ) {
@@ -578,9 +587,12 @@ pipeline {
578587 retry(5 ) {
579588 sh " docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${ COMMIT_SHA} -${ BUILD_NUMBER} "
580589 }
581- sh ''' docker rmi \
582- ${IMAGE}:arm64v8-${META_TAG} \
583- ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
590+ sh ''' #! /bin/bash
591+ containers=$(docker ps -aq)
592+ if [[ -n "${containers}" ]]; then
593+ docker stop ${containers}
594+ fi
595+ docker system prune -af --volumes || : '''
584596 }
585597 }
586598 }
@@ -641,13 +653,6 @@ pipeline {
641653 environment name : ' EXIT_STATUS' , value : ' '
642654 }
643655 steps {
644- sh ''' #! /bin/bash
645- echo "Packages were updated. Cleaning up the image and exiting."
646- if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
647- docker rmi ${IMAGE}:amd64-${META_TAG}
648- else
649- docker rmi ${IMAGE}:${META_TAG}
650- fi'''
651656 script{
652657 env. EXIT_STATUS = ' ABORTED'
653658 }
@@ -665,13 +670,6 @@ pipeline {
665670 }
666671 }
667672 steps {
668- sh ''' #! /bin/bash
669- echo "There are no package updates. Cleaning up the image and exiting."
670- if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
671- docker rmi ${IMAGE}:amd64-${META_TAG}
672- else
673- docker rmi ${IMAGE}:${META_TAG}
674- fi'''
675673 script{
676674 env. EXIT_STATUS = ' ABORTED'
677675 }
@@ -772,17 +770,6 @@ pipeline {
772770 done
773771 '''
774772 }
775- sh ''' #! /bin/bash
776- for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
777- docker rmi \
778- ${DELETEIMAGE}:${META_TAG} \
779- ${DELETEIMAGE}:${EXT_RELEASE_TAG} \
780- ${DELETEIMAGE}:latest || :
781- if [ -n "${SEMVER}" ]; then
782- docker rmi ${DELETEIMAGE}:${SEMVER} || :
783- fi
784- done
785- '''
786773 }
787774 }
788775 }
@@ -876,29 +863,6 @@ pipeline {
876863 done
877864 '''
878865 }
879- sh ''' #! /bin/bash
880- for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
881- docker rmi \
882- ${DELETEIMAGE}:amd64-${META_TAG} \
883- ${DELETEIMAGE}:amd64-latest \
884- ${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
885- ${DELETEIMAGE}:arm32v7-${META_TAG} \
886- ${DELETEIMAGE}:arm32v7-latest \
887- ${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
888- ${DELETEIMAGE}:arm64v8-${META_TAG} \
889- ${DELETEIMAGE}:arm64v8-latest \
890- ${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
891- if [ -n "${SEMVER}" ]; then
892- docker rmi \
893- ${DELETEIMAGE}:amd64-${SEMVER} \
894- ${DELETEIMAGE}:arm32v7-${SEMVER} \
895- ${DELETEIMAGE}:arm64v8-${SEMVER} || :
896- fi
897- done
898- docker rmi \
899- ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
900- ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :
901- '''
902866 }
903867 }
904868 }
@@ -969,7 +933,6 @@ pipeline {
969933 stage(' Pull Request Comment' ) {
970934 when {
971935 not {environment name : ' CHANGE_ID' , value : ' ' }
972- environment name : ' CI' , value : ' true'
973936 environment name : ' EXIT_STATUS' , value : ' '
974937 }
975938 steps {
@@ -1023,16 +986,24 @@ pipeline {
1023986 echo "$escaped_table"
1024987 }
1025988
1026- # Retrieve JSON data from URL
1027- data=$(get_json "$CI_JSON_URL")
1028- # Create table from JSON data
1029- table=$(build_table "$data")
1030- echo -e "$table"
989+ if [[ "${CI}" = "true" ]]; then
990+ # Retrieve JSON data from URL
991+ data=$(get_json "$CI_JSON_URL")
992+ # Create table from JSON data
993+ table=$(build_table "$data")
994+ echo -e "$table"
1031995
1032- curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
1033- -H "Accept: application/vnd.github.v3+json" \
1034- "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
1035- -d "{\\ "body\\ ": \\ "I am a bot, here are the test results for this PR: \\ n${CI_URL}\\ n${SHELLCHECK_URL}\\ n${table}\\ "}"'''
996+ curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
997+ -H "Accept: application/vnd.github.v3+json" \
998+ "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
999+ -d "{\\ "body\\ ": \\ "I am a bot, here are the test results for this PR: \\ n${CI_URL}\\ n${SHELLCHECK_URL}\\ n${table}\\ "}"
1000+ else
1001+ curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
1002+ -H "Accept: application/vnd.github.v3+json" \
1003+ "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
1004+ -d "{\\ "body\\ ": \\ "I am a bot, here is the pushed image/manifest for this PR: \\ n\\ n\\ `${GITHUBIMAGE}:${META_TAG}\\ `\\ "}"
1005+ fi
1006+ '''
10361007
10371008 }
10381009 }
@@ -1059,6 +1030,14 @@ pipeline {
10591030 }
10601031 }
10611032 cleanup {
1033+ sh ''' #! /bin/bash
1034+ echo "Performing docker system prune!!"
1035+ containers=$(docker ps -aq)
1036+ if [[ -n "${containers}" ]]; then
1037+ docker stop ${containers}
1038+ fi
1039+ docker system prune -af --volumes || :
1040+ '''
10621041 cleanWs()
10631042 }
10641043 }
0 commit comments