@@ -41,7 +41,12 @@ pipeline {
4141 // Setup all the basic environment variables needed for the build
4242 stage(" Set ENV Variables base" ){
4343 steps{
44- sh ''' docker pull quay.io/skopeo/stable:v1 || : '''
44+ sh ''' #! /bin/bash
45+ containers=$(docker ps -aq)
46+ if [[ -n "${containers}" ]]; then
47+ docker stop ${containers}
48+ fi
49+ docker system prune -af --volumes || : '''
4550 script{
4651 env. EXIT_STATUS = ' '
4752 env. LS_RELEASE = sh(
@@ -206,12 +211,12 @@ pipeline {
206211 env. GITLABIMAGE = ' registry.gitlab.com/linuxserver.io/' + env. LS_REPO + ' /lspipepr-' + env. CONTAINER_NAME
207212 env. QUAYIMAGE = ' quay.io/linuxserver.io/lspipepr-' + env. CONTAINER_NAME
208213 if (env. MULTIARCH == ' true' ) {
209- 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
214+ 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
210215 } else {
211- env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
216+ env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev- ' + env . COMMIT_SHA + ' - pr-' + env. PULL_REQUEST
212217 }
213- env. VERSION_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
214- env. META_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
218+ env. VERSION_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev- ' + env . COMMIT_SHA + ' - pr-' + env. PULL_REQUEST
219+ env. META_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev- ' + env . COMMIT_SHA + ' - pr-' + env. PULL_REQUEST
215220 env. EXT_RELEASE_TAG = ' version-' + env. EXT_RELEASE_CLEAN
216221 env. CODE_URL = ' https://github.com/' + env. LS_USER + ' /' + env. LS_REPO + ' /pull/' + env. PULL_REQUEST
217222 env. DOCKERHUB_LINK = ' https://hub.docker.com/r/' + env. PR_DOCKERHUB_IMAGE + ' /tags/'
@@ -339,6 +344,8 @@ pipeline {
339344 git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
340345 if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
341346 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
347+ elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then
348+ 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
342349 fi
343350 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
344351 cd ${TEMPDIR}/unraid/templates/
@@ -430,8 +437,7 @@ pipeline {
430437 }
431438 steps{
432439 sh ''' #! /bin/bash
433- set -e
434- PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/embystat") | .uuid')
440+ PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/embystat") | .uuid' || :)
435441 if [ -z "${PACKAGE_UUID}" ]; then
436442 echo "Adding package to Scarf.sh"
437443 curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
@@ -541,9 +547,12 @@ pipeline {
541547 retry(5 ) {
542548 sh " docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${ COMMIT_SHA} -${ BUILD_NUMBER} "
543549 }
544- sh ''' docker rmi \
545- ${IMAGE}:arm32v7-${META_TAG} \
546- ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
550+ sh ''' #! /bin/bash
551+ containers=$(docker ps -aq)
552+ if [[ -n "${containers}" ]]; then
553+ docker stop ${containers}
554+ fi
555+ docker system prune -af --volumes || : '''
547556 }
548557 }
549558 stage(' Build ARM64' ) {
@@ -576,9 +585,12 @@ pipeline {
576585 retry(5 ) {
577586 sh " docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${ COMMIT_SHA} -${ BUILD_NUMBER} "
578587 }
579- sh ''' docker rmi \
580- ${IMAGE}:arm64v8-${META_TAG} \
581- ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
588+ sh ''' #! /bin/bash
589+ containers=$(docker ps -aq)
590+ if [[ -n "${containers}" ]]; then
591+ docker stop ${containers}
592+ fi
593+ docker system prune -af --volumes || : '''
582594 }
583595 }
584596 }
@@ -639,13 +651,6 @@ pipeline {
639651 environment name : ' EXIT_STATUS' , value : ' '
640652 }
641653 steps {
642- sh ''' #! /bin/bash
643- echo "Packages were updated. Cleaning up the image and exiting."
644- if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
645- docker rmi ${IMAGE}:amd64-${META_TAG}
646- else
647- docker rmi ${IMAGE}:${META_TAG}
648- fi'''
649654 script{
650655 env. EXIT_STATUS = ' ABORTED'
651656 }
@@ -663,13 +668,6 @@ pipeline {
663668 }
664669 }
665670 steps {
666- sh ''' #! /bin/bash
667- echo "There are no package updates. Cleaning up the image and exiting."
668- if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
669- docker rmi ${IMAGE}:amd64-${META_TAG}
670- else
671- docker rmi ${IMAGE}:${META_TAG}
672- fi'''
673671 script{
674672 env. EXIT_STATUS = ' ABORTED'
675673 }
@@ -770,17 +768,6 @@ pipeline {
770768 done
771769 '''
772770 }
773- sh ''' #! /bin/bash
774- for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
775- docker rmi \
776- ${DELETEIMAGE}:${META_TAG} \
777- ${DELETEIMAGE}:${EXT_RELEASE_TAG} \
778- ${DELETEIMAGE}:latest || :
779- if [ -n "${SEMVER}" ]; then
780- docker rmi ${DELETEIMAGE}:${SEMVER} || :
781- fi
782- done
783- '''
784771 }
785772 }
786773 }
@@ -874,29 +861,6 @@ pipeline {
874861 done
875862 '''
876863 }
877- sh ''' #! /bin/bash
878- for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
879- docker rmi \
880- ${DELETEIMAGE}:amd64-${META_TAG} \
881- ${DELETEIMAGE}:amd64-latest \
882- ${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
883- ${DELETEIMAGE}:arm32v7-${META_TAG} \
884- ${DELETEIMAGE}:arm32v7-latest \
885- ${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
886- ${DELETEIMAGE}:arm64v8-${META_TAG} \
887- ${DELETEIMAGE}:arm64v8-latest \
888- ${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
889- if [ -n "${SEMVER}" ]; then
890- docker rmi \
891- ${DELETEIMAGE}:amd64-${SEMVER} \
892- ${DELETEIMAGE}:arm32v7-${SEMVER} \
893- ${DELETEIMAGE}:arm64v8-${SEMVER} || :
894- fi
895- done
896- docker rmi \
897- ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
898- ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :
899- '''
900864 }
901865 }
902866 }
@@ -967,7 +931,6 @@ pipeline {
967931 stage(' Pull Request Comment' ) {
968932 when {
969933 not {environment name : ' CHANGE_ID' , value : ' ' }
970- environment name : ' CI' , value : ' true'
971934 environment name : ' EXIT_STATUS' , value : ' '
972935 }
973936 steps {
@@ -1021,16 +984,24 @@ pipeline {
1021984 echo "$escaped_table"
1022985 }
1023986
1024- # Retrieve JSON data from URL
1025- data=$(get_json "$CI_JSON_URL")
1026- # Create table from JSON data
1027- table=$(build_table "$data")
1028- echo -e "$table"
987+ if [[ "${CI}" = "true" ]]; then
988+ # Retrieve JSON data from URL
989+ data=$(get_json "$CI_JSON_URL")
990+ # Create table from JSON data
991+ table=$(build_table "$data")
992+ echo -e "$table"
1029993
1030- curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
1031- -H "Accept: application/vnd.github.v3+json" \
1032- "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
1033- -d "{\\ "body\\ ": \\ "I am a bot, here are the test results for this PR: \\ n${CI_URL}\\ n${SHELLCHECK_URL}\\ n${table}\\ "}"'''
994+ curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
995+ -H "Accept: application/vnd.github.v3+json" \
996+ "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
997+ -d "{\\ "body\\ ": \\ "I am a bot, here are the test results for this PR: \\ n${CI_URL}\\ n${SHELLCHECK_URL}\\ n${table}\\ "}"
998+ else
999+ curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
1000+ -H "Accept: application/vnd.github.v3+json" \
1001+ "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
1002+ -d "{\\ "body\\ ": \\ "I am a bot, here is the pushed image/manifest for this PR: \\ n\\ n\\ `${GITHUBIMAGE}:${META_TAG}\\ `\\ "}"
1003+ fi
1004+ '''
10341005
10351006 }
10361007 }
@@ -1057,6 +1028,14 @@ pipeline {
10571028 }
10581029 }
10591030 cleanup {
1031+ sh ''' #! /bin/bash
1032+ echo "Performing docker system prune!!"
1033+ containers=$(docker ps -aq)
1034+ if [[ -n "${containers}" ]]; then
1035+ docker stop ${containers}
1036+ fi
1037+ docker system prune -af --volumes || :
1038+ '''
10601039 cleanWs()
10611040 }
10621041 }
0 commit comments