@@ -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(
@@ -214,12 +219,12 @@ pipeline {
214219 env. GITLABIMAGE = ' registry.gitlab.com/linuxserver.io/' + env. LS_REPO + ' /lspipepr-' + env. CONTAINER_NAME
215220 env. QUAYIMAGE = ' quay.io/linuxserver.io/lspipepr-' + env. CONTAINER_NAME
216221 if (env. MULTIARCH == ' true' ) {
217- 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
222+ 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
218223 } else {
219- env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
224+ env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev- ' + env . COMMIT_SHA + ' - pr-' + env. PULL_REQUEST
220225 }
221- env. VERSION_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
222- env. META_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
226+ env. VERSION_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev- ' + env . COMMIT_SHA + ' - pr-' + env. PULL_REQUEST
227+ env. META_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev- ' + env . COMMIT_SHA + ' - pr-' + env. PULL_REQUEST
223228 env. EXT_RELEASE_TAG = ' version-' + env. EXT_RELEASE_CLEAN
224229 env. CODE_URL = ' https://github.com/' + env. LS_USER + ' /' + env. LS_REPO + ' /pull/' + env. PULL_REQUEST
225230 env. DOCKERHUB_LINK = ' https://hub.docker.com/r/' + env. PR_DOCKERHUB_IMAGE + ' /tags/'
@@ -347,6 +352,8 @@ pipeline {
347352 git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
348353 if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
349354 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
355+ elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then
356+ 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
350357 fi
351358 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
352359 cd ${TEMPDIR}/unraid/templates/
@@ -438,8 +445,7 @@ pipeline {
438445 }
439446 steps{
440447 sh ''' #! /bin/bash
441- set -e
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/bookstack") | .uuid')
448+ PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/bookstack") | .uuid' || :)
443449 if [ -z "${PACKAGE_UUID}" ]; then
444450 echo "Adding package to Scarf.sh"
445451 curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
@@ -549,9 +555,12 @@ pipeline {
549555 retry(5 ) {
550556 sh " docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${ COMMIT_SHA} -${ BUILD_NUMBER} "
551557 }
552- sh ''' docker rmi \
553- ${IMAGE}:arm32v7-${META_TAG} \
554- ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
558+ sh ''' #! /bin/bash
559+ containers=$(docker ps -aq)
560+ if [[ -n "${containers}" ]]; then
561+ docker stop ${containers}
562+ fi
563+ docker system prune -af --volumes || : '''
555564 }
556565 }
557566 stage(' Build ARM64' ) {
@@ -584,9 +593,12 @@ pipeline {
584593 retry(5 ) {
585594 sh " docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${ COMMIT_SHA} -${ BUILD_NUMBER} "
586595 }
587- sh ''' docker rmi \
588- ${IMAGE}:arm64v8-${META_TAG} \
589- ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
596+ sh ''' #! /bin/bash
597+ containers=$(docker ps -aq)
598+ if [[ -n "${containers}" ]]; then
599+ docker stop ${containers}
600+ fi
601+ docker system prune -af --volumes || : '''
590602 }
591603 }
592604 }
@@ -647,13 +659,6 @@ pipeline {
647659 environment name : ' EXIT_STATUS' , value : ' '
648660 }
649661 steps {
650- sh ''' #! /bin/bash
651- echo "Packages were updated. Cleaning up the image and exiting."
652- if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
653- docker rmi ${IMAGE}:amd64-${META_TAG}
654- else
655- docker rmi ${IMAGE}:${META_TAG}
656- fi'''
657662 script{
658663 env. EXIT_STATUS = ' ABORTED'
659664 }
@@ -671,13 +676,6 @@ pipeline {
671676 }
672677 }
673678 steps {
674- sh ''' #! /bin/bash
675- echo "There are no package updates. Cleaning up the image and exiting."
676- if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
677- docker rmi ${IMAGE}:amd64-${META_TAG}
678- else
679- docker rmi ${IMAGE}:${META_TAG}
680- fi'''
681679 script{
682680 env. EXIT_STATUS = ' ABORTED'
683681 }
@@ -778,17 +776,6 @@ pipeline {
778776 done
779777 '''
780778 }
781- sh ''' #! /bin/bash
782- for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
783- docker rmi \
784- ${DELETEIMAGE}:${META_TAG} \
785- ${DELETEIMAGE}:${EXT_RELEASE_TAG} \
786- ${DELETEIMAGE}:latest || :
787- if [ -n "${SEMVER}" ]; then
788- docker rmi ${DELETEIMAGE}:${SEMVER} || :
789- fi
790- done
791- '''
792779 }
793780 }
794781 }
@@ -882,29 +869,6 @@ pipeline {
882869 done
883870 '''
884871 }
885- sh ''' #! /bin/bash
886- for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
887- docker rmi \
888- ${DELETEIMAGE}:amd64-${META_TAG} \
889- ${DELETEIMAGE}:amd64-latest \
890- ${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
891- ${DELETEIMAGE}:arm32v7-${META_TAG} \
892- ${DELETEIMAGE}:arm32v7-latest \
893- ${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
894- ${DELETEIMAGE}:arm64v8-${META_TAG} \
895- ${DELETEIMAGE}:arm64v8-latest \
896- ${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
897- if [ -n "${SEMVER}" ]; then
898- docker rmi \
899- ${DELETEIMAGE}:amd64-${SEMVER} \
900- ${DELETEIMAGE}:arm32v7-${SEMVER} \
901- ${DELETEIMAGE}:arm64v8-${SEMVER} || :
902- fi
903- done
904- docker rmi \
905- ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
906- ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :
907- '''
908872 }
909873 }
910874 }
@@ -975,7 +939,6 @@ pipeline {
975939 stage(' Pull Request Comment' ) {
976940 when {
977941 not {environment name : ' CHANGE_ID' , value : ' ' }
978- environment name : ' CI' , value : ' true'
979942 environment name : ' EXIT_STATUS' , value : ' '
980943 }
981944 steps {
@@ -1029,16 +992,24 @@ pipeline {
1029992 echo "$escaped_table"
1030993 }
1031994
1032- # Retrieve JSON data from URL
1033- data=$(get_json "$CI_JSON_URL")
1034- # Create table from JSON data
1035- table=$(build_table "$data")
1036- echo -e "$table"
995+ if [[ "${CI}" = "true" ]]; then
996+ # Retrieve JSON data from URL
997+ data=$(get_json "$CI_JSON_URL")
998+ # Create table from JSON data
999+ table=$(build_table "$data")
1000+ echo -e "$table"
10371001
1038- curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
1039- -H "Accept: application/vnd.github.v3+json" \
1040- "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
1041- -d "{\\ "body\\ ": \\ "I am a bot, here are the test results for this PR: \\ n${CI_URL}\\ n${SHELLCHECK_URL}\\ n${table}\\ "}"'''
1002+ curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
1003+ -H "Accept: application/vnd.github.v3+json" \
1004+ "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
1005+ -d "{\\ "body\\ ": \\ "I am a bot, here are the test results for this PR: \\ n${CI_URL}\\ n${SHELLCHECK_URL}\\ n${table}\\ "}"
1006+ else
1007+ curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
1008+ -H "Accept: application/vnd.github.v3+json" \
1009+ "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
1010+ -d "{\\ "body\\ ": \\ "I am a bot, here is the pushed image/manifest for this PR: \\ n\\ n\\ `${GITHUBIMAGE}:${META_TAG}\\ `\\ "}"
1011+ fi
1012+ '''
10421013
10431014 }
10441015 }
@@ -1065,6 +1036,14 @@ pipeline {
10651036 }
10661037 }
10671038 cleanup {
1039+ sh ''' #! /bin/bash
1040+ echo "Performing docker system prune!!"
1041+ containers=$(docker ps -aq)
1042+ if [[ -n "${containers}" ]]; then
1043+ docker stop ${containers}
1044+ fi
1045+ docker system prune -af --volumes || :
1046+ '''
10681047 cleanWs()
10691048 }
10701049 }
0 commit comments