@@ -39,7 +39,12 @@ pipeline {
3939 // Setup all the basic environment variables needed for the build
4040 stage(" Set ENV Variables base" ){
4141 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 || : '''
4348 script{
4449 env. EXIT_STATUS = ' '
4550 env. LS_RELEASE = sh(
@@ -204,12 +209,12 @@ pipeline {
204209 env. GITLABIMAGE = ' registry.gitlab.com/linuxserver.io/' + env. LS_REPO + ' /lspipepr-' + env. CONTAINER_NAME
205210 env. QUAYIMAGE = ' quay.io/linuxserver.io/lspipepr-' + env. CONTAINER_NAME
206211 if (env. MULTIARCH == ' true' ) {
207- 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
212+ 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
208213 } 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
210215 }
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
213218 env. EXT_RELEASE_TAG = ' version-' + env. EXT_RELEASE_CLEAN
214219 env. CODE_URL = ' https://github.com/' + env. LS_USER + ' /' + env. LS_REPO + ' /pull/' + env. PULL_REQUEST
215220 env. DOCKERHUB_LINK = ' https://hub.docker.com/r/' + env. PR_DOCKERHUB_IMAGE + ' /tags/'
@@ -337,6 +342,8 @@ pipeline {
337342 git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
338343 if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
339344 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
340347 fi
341348 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
342349 cd ${TEMPDIR}/unraid/templates/
@@ -428,8 +435,7 @@ pipeline {
428435 }
429436 steps{
430437 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/mysql-workbench") | .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/mysql-workbench") | .uuid' || :)
433439 if [ -z "${PACKAGE_UUID}" ]; then
434440 echo "Adding package to Scarf.sh"
435441 curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
@@ -539,9 +545,12 @@ pipeline {
539545 retry(5 ) {
540546 sh " docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${ COMMIT_SHA} -${ BUILD_NUMBER} "
541547 }
542- sh ''' docker rmi \
543- ${IMAGE}:arm32v7-${META_TAG} \
544- ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${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 || : '''
545554 }
546555 }
547556 stage(' Build ARM64' ) {
@@ -574,9 +583,12 @@ pipeline {
574583 retry(5 ) {
575584 sh " docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${ COMMIT_SHA} -${ BUILD_NUMBER} "
576585 }
577- sh ''' docker rmi \
578- ${IMAGE}:arm64v8-${META_TAG} \
579- ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
586+ sh ''' #! /bin/bash
587+ containers=$(docker ps -aq)
588+ if [[ -n "${containers}" ]]; then
589+ docker stop ${containers}
590+ fi
591+ docker system prune -af --volumes || : '''
580592 }
581593 }
582594 }
@@ -637,13 +649,6 @@ pipeline {
637649 environment name : ' EXIT_STATUS' , value : ' '
638650 }
639651 steps {
640- sh ''' #! /bin/bash
641- echo "Packages were updated. Cleaning up the image and exiting."
642- if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
643- docker rmi ${IMAGE}:amd64-${META_TAG}
644- else
645- docker rmi ${IMAGE}:${META_TAG}
646- fi'''
647652 script{
648653 env. EXIT_STATUS = ' ABORTED'
649654 }
@@ -661,13 +666,6 @@ pipeline {
661666 }
662667 }
663668 steps {
664- sh ''' #! /bin/bash
665- echo "There are no package updates. Cleaning up the image and exiting."
666- if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
667- docker rmi ${IMAGE}:amd64-${META_TAG}
668- else
669- docker rmi ${IMAGE}:${META_TAG}
670- fi'''
671669 script{
672670 env. EXIT_STATUS = ' ABORTED'
673671 }
@@ -768,17 +766,6 @@ pipeline {
768766 done
769767 '''
770768 }
771- sh ''' #! /bin/bash
772- for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
773- docker rmi \
774- ${DELETEIMAGE}:${META_TAG} \
775- ${DELETEIMAGE}:${EXT_RELEASE_TAG} \
776- ${DELETEIMAGE}:latest || :
777- if [ -n "${SEMVER}" ]; then
778- docker rmi ${DELETEIMAGE}:${SEMVER} || :
779- fi
780- done
781- '''
782769 }
783770 }
784771 }
@@ -872,29 +859,6 @@ pipeline {
872859 done
873860 '''
874861 }
875- sh ''' #! /bin/bash
876- for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
877- docker rmi \
878- ${DELETEIMAGE}:amd64-${META_TAG} \
879- ${DELETEIMAGE}:amd64-latest \
880- ${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
881- ${DELETEIMAGE}:arm32v7-${META_TAG} \
882- ${DELETEIMAGE}:arm32v7-latest \
883- ${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
884- ${DELETEIMAGE}:arm64v8-${META_TAG} \
885- ${DELETEIMAGE}:arm64v8-latest \
886- ${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
887- if [ -n "${SEMVER}" ]; then
888- docker rmi \
889- ${DELETEIMAGE}:amd64-${SEMVER} \
890- ${DELETEIMAGE}:arm32v7-${SEMVER} \
891- ${DELETEIMAGE}:arm64v8-${SEMVER} || :
892- fi
893- done
894- docker rmi \
895- ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
896- ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :
897- '''
898862 }
899863 }
900864 }
@@ -965,7 +929,6 @@ pipeline {
965929 stage(' Pull Request Comment' ) {
966930 when {
967931 not {environment name : ' CHANGE_ID' , value : ' ' }
968- environment name : ' CI' , value : ' true'
969932 environment name : ' EXIT_STATUS' , value : ' '
970933 }
971934 steps {
@@ -1019,16 +982,24 @@ pipeline {
1019982 echo "$escaped_table"
1020983 }
1021984
1022- # Retrieve JSON data from URL
1023- data=$(get_json "$CI_JSON_URL")
1024- # Create table from JSON data
1025- table=$(build_table "$data")
1026- echo -e "$table"
985+ if [[ "${CI}" = "true" ]]; then
986+ # Retrieve JSON data from URL
987+ data=$(get_json "$CI_JSON_URL")
988+ # Create table from JSON data
989+ table=$(build_table "$data")
990+ echo -e "$table"
1027991
1028- curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
1029- -H "Accept: application/vnd.github.v3+json" \
1030- "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
1031- -d "{\\ "body\\ ": \\ "I am a bot, here are the test results for this PR: \\ n${CI_URL}\\ n${SHELLCHECK_URL}\\ n${table}\\ "}"'''
992+ curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
993+ -H "Accept: application/vnd.github.v3+json" \
994+ "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
995+ -d "{\\ "body\\ ": \\ "I am a bot, here are the test results for this PR: \\ n${CI_URL}\\ n${SHELLCHECK_URL}\\ n${table}\\ "}"
996+ else
997+ curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
998+ -H "Accept: application/vnd.github.v3+json" \
999+ "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
1000+ -d "{\\ "body\\ ": \\ "I am a bot, here is the pushed image/manifest for this PR: \\ n\\ n\\ `${GITHUBIMAGE}:${META_TAG}\\ `\\ "}"
1001+ fi
1002+ '''
10321003
10331004 }
10341005 }
@@ -1055,6 +1026,14 @@ pipeline {
10551026 }
10561027 }
10571028 cleanup {
1029+ sh ''' #! /bin/bash
1030+ echo "Performing docker system prune!!"
1031+ containers=$(docker ps -aq)
1032+ if [[ -n "${containers}" ]]; then
1033+ docker stop ${containers}
1034+ fi
1035+ docker system prune -af --volumes || :
1036+ '''
10581037 cleanWs()
10591038 }
10601039 }
0 commit comments