@@ -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(
@@ -202,12 +207,12 @@ pipeline {
202207 env. GITLABIMAGE = ' registry.gitlab.com/linuxserver.io/' + env. LS_REPO + ' /lspipepr-' + env. CONTAINER_NAME
203208 env. QUAYIMAGE = ' quay.io/linuxserver.io/lspipepr-' + env. CONTAINER_NAME
204209 if (env. MULTIARCH == ' true' ) {
205- 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
210+ 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
206211 } else {
207- env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
212+ env. CI_TAGS = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev- ' + env . COMMIT_SHA + ' - pr-' + env. PULL_REQUEST
208213 }
209- env. VERSION_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
210- env. META_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
214+ env. VERSION_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev- ' + env . COMMIT_SHA + ' - pr-' + env. PULL_REQUEST
215+ env. META_TAG = env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev- ' + env . COMMIT_SHA + ' - pr-' + env. PULL_REQUEST
211216 env. EXT_RELEASE_TAG = ' version-' + env. EXT_RELEASE_CLEAN
212217 env. CODE_URL = ' https://github.com/' + env. LS_USER + ' /' + env. LS_REPO + ' /pull/' + env. PULL_REQUEST
213218 env. DOCKERHUB_LINK = ' https://hub.docker.com/r/' + env. PR_DOCKERHUB_IMAGE + ' /tags/'
@@ -405,8 +410,7 @@ pipeline {
405410 }
406411 steps{
407412 sh ''' #! /bin/bash
408- set -e
409- PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/build-agent") | .uuid')
413+ PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/build-agent") | .uuid' || :)
410414 if [ -z "${PACKAGE_UUID}" ]; then
411415 echo "Adding package to Scarf.sh"
412416 curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
@@ -516,9 +520,12 @@ pipeline {
516520 retry(5 ) {
517521 sh " docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${ COMMIT_SHA} -${ BUILD_NUMBER} "
518522 }
519- sh ''' docker rmi \
520- ${IMAGE}:arm64v8-${META_TAG} \
521- ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
523+ sh ''' #! /bin/bash
524+ containers=$(docker ps -aq)
525+ if [[ -n "${containers}" ]]; then
526+ docker stop ${containers}
527+ fi
528+ docker system prune -af --volumes || : '''
522529 }
523530 }
524531 }
@@ -579,13 +586,6 @@ pipeline {
579586 environment name : ' EXIT_STATUS' , value : ' '
580587 }
581588 steps {
582- sh ''' #! /bin/bash
583- echo "Packages were updated. Cleaning up the image and exiting."
584- if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
585- docker rmi ${IMAGE}:amd64-${META_TAG}
586- else
587- docker rmi ${IMAGE}:${META_TAG}
588- fi'''
589589 script{
590590 env. EXIT_STATUS = ' ABORTED'
591591 }
@@ -603,13 +603,6 @@ pipeline {
603603 }
604604 }
605605 steps {
606- sh ''' #! /bin/bash
607- echo "There are no package updates. Cleaning up the image and exiting."
608- if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
609- docker rmi ${IMAGE}:amd64-${META_TAG}
610- else
611- docker rmi ${IMAGE}:${META_TAG}
612- fi'''
613606 script{
614607 env. EXIT_STATUS = ' ABORTED'
615608 }
@@ -708,17 +701,6 @@ pipeline {
708701 done
709702 '''
710703 }
711- sh ''' #! /bin/bash
712- for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
713- docker rmi \
714- ${DELETEIMAGE}:${META_TAG} \
715- ${DELETEIMAGE}:${EXT_RELEASE_TAG} \
716- ${DELETEIMAGE}:latest || :
717- if [ -n "${SEMVER}" ]; then
718- docker rmi ${DELETEIMAGE}:${SEMVER} || :
719- fi
720- done
721- '''
722704 }
723705 }
724706 }
@@ -789,9 +771,16 @@ pipeline {
789771 docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
790772 docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
791773 fi
792- docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest || :
793- docker manifest create ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:amd64-latest
794- docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest
774+ token=$(curl -sX GET "https://ghcr.io/token?scope=repository%3Alinuxserver%2F${CONTAINER_NAME}%3Apull" | jq -r '.token')
775+ digest=$(curl -s \
776+ --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
777+ --header "Authorization: Bearer ${token}" \
778+ "https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-latest")
779+ if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then
780+ docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest || :
781+ docker manifest create ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:amd64-latest
782+ docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest
783+ fi
795784 docker manifest push --purge ${MANIFESTIMAGE}:latest
796785 docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
797786 docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
@@ -801,24 +790,6 @@ pipeline {
801790 done
802791 '''
803792 }
804- sh ''' #! /bin/bash
805- for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
806- docker rmi \
807- ${DELETEIMAGE}:amd64-${META_TAG} \
808- ${DELETEIMAGE}:amd64-latest \
809- ${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
810- ${DELETEIMAGE}:arm64v8-${META_TAG} \
811- ${DELETEIMAGE}:arm64v8-latest \
812- ${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
813- if [ -n "${SEMVER}" ]; then
814- docker rmi \
815- ${DELETEIMAGE}:amd64-${SEMVER} \
816- ${DELETEIMAGE}:arm64v8-${SEMVER} || :
817- fi
818- done
819- docker rmi \
820- ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :
821- '''
822793 }
823794 }
824795 }
@@ -889,7 +860,6 @@ pipeline {
889860 stage(' Pull Request Comment' ) {
890861 when {
891862 not {environment name : ' CHANGE_ID' , value : ' ' }
892- environment name : ' CI' , value : ' true'
893863 environment name : ' EXIT_STATUS' , value : ' '
894864 }
895865 steps {
@@ -943,16 +913,24 @@ pipeline {
943913 echo "$escaped_table"
944914 }
945915
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"
916+ if [[ "${CI}" = "true" ]]; then
917+ # Retrieve JSON data from URL
918+ data=$(get_json "$CI_JSON_URL")
919+ # Create table from JSON data
920+ table=$(build_table "$data")
921+ echo -e "$table"
951922
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}\\ "}"'''
923+ curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
924+ -H "Accept: application/vnd.github.v3+json" \
925+ "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
926+ -d "{\\ "body\\ ": \\ "I am a bot, here are the test results for this PR: \\ n${CI_URL}\\ n${SHELLCHECK_URL}\\ n${table}\\ "}"
927+ else
928+ curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
929+ -H "Accept: application/vnd.github.v3+json" \
930+ "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
931+ -d "{\\ "body\\ ": \\ "I am a bot, here is the pushed image/manifest for this PR: \\ n\\ n\\ `${GITHUBIMAGE}:${META_TAG}\\ `\\ "}"
932+ fi
933+ '''
956934
957935 }
958936 }
@@ -979,6 +957,14 @@ pipeline {
979957 }
980958 }
981959 cleanup {
960+ sh ''' #! /bin/bash
961+ echo "Performing docker system prune!!"
962+ containers=$(docker ps -aq)
963+ if [[ -n "${containers}" ]]; then
964+ docker stop ${containers}
965+ fi
966+ docker system prune -af --volumes || :
967+ '''
982968 cleanWs()
983969 }
984970 }
0 commit comments