@@ -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-bullseye-' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST + ' |arm64v8-bullseye-' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
210+ env. CI_TAGS = ' amd64-bullseye-' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev- ' + env . COMMIT_SHA + ' - pr-' + env. PULL_REQUEST + ' |arm64v8-bullseye-' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev- ' + env . COMMIT_SHA + ' -pr-' + env. PULL_REQUEST
206211 } else {
207- env. CI_TAGS = ' bullseye-' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -pr-' + env. PULL_REQUEST
212+ env. CI_TAGS = ' bullseye-' + 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 = ' bullseye-' + 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 = ' bullseye-' + env. EXT_RELEASE_CLEAN + ' -pkg-' + env. PACKAGE_TAG + ' -dev- ' + env . COMMIT_SHA + ' - pr-' + env. PULL_REQUEST
211216 env. EXT_RELEASE_TAG = ' bullseye-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/baseimage-debian") | .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/baseimage-debian") | .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 \
@@ -513,9 +517,12 @@ pipeline {
513517 retry(5 ) {
514518 sh " docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${ COMMIT_SHA} -${ BUILD_NUMBER} "
515519 }
516- sh ''' docker rmi \
517- ${IMAGE}:arm64v8-${META_TAG} \
518- ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
520+ sh ''' #! /bin/bash
521+ containers=$(docker ps -aq)
522+ if [[ -n "${containers}" ]]; then
523+ docker stop ${containers}
524+ fi
525+ docker system prune -af --volumes || : '''
519526 }
520527 }
521528 }
@@ -691,17 +698,6 @@ pipeline {
691698 done
692699 '''
693700 }
694- sh ''' #! /bin/bash
695- for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
696- docker rmi \
697- ${DELETEIMAGE}:${META_TAG} \
698- ${DELETEIMAGE}:${EXT_RELEASE_TAG} \
699- ${DELETEIMAGE}:bullseye || :
700- if [ -n "${SEMVER}" ]; then
701- docker rmi ${DELETEIMAGE}:${SEMVER} || :
702- fi
703- done
704- '''
705701 }
706702 }
707703 }
@@ -772,9 +768,16 @@ pipeline {
772768 docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
773769 docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
774770 fi
775- docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-bullseye || :
776- docker manifest create ${MANIFESTIMAGE}:arm32v7-bullseye ${MANIFESTIMAGE}:amd64-bullseye
777- docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-bullseye
771+ token=$(curl -sX GET "https://ghcr.io/token?scope=repository%3Alinuxserver%2F${CONTAINER_NAME}%3Apull" | jq -r '.token')
772+ digest=$(curl -s \
773+ --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
774+ --header "Authorization: Bearer ${token}" \
775+ "https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-bullseye")
776+ if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then
777+ docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-bullseye || :
778+ docker manifest create ${MANIFESTIMAGE}:arm32v7-bullseye ${MANIFESTIMAGE}:amd64-bullseye
779+ docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-bullseye
780+ fi
778781 docker manifest push --purge ${MANIFESTIMAGE}:bullseye
779782 docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
780783 docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
@@ -784,20 +787,6 @@ pipeline {
784787 done
785788 '''
786789 }
787- sh ''' #! /bin/bash
788- for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
789- docker rmi \
790- ${DELETEIMAGE}:arm64v8-${META_TAG} \
791- ${DELETEIMAGE}:arm64v8-bullseye \
792- ${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
793- if [ -n "${SEMVER}" ]; then
794- docker rmi \
795- ${DELETEIMAGE}:arm64v8-${SEMVER} || :
796- fi
797- done
798- docker rmi \
799- ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :
800- '''
801790 }
802791 }
803792 }
@@ -868,7 +857,6 @@ pipeline {
868857 stage(' Pull Request Comment' ) {
869858 when {
870859 not {environment name : ' CHANGE_ID' , value : ' ' }
871- environment name : ' CI' , value : ' true'
872860 environment name : ' EXIT_STATUS' , value : ' '
873861 }
874862 steps {
@@ -922,16 +910,24 @@ pipeline {
922910 echo "$escaped_table"
923911 }
924912
925- # Retrieve JSON data from URL
926- data=$(get_json "$CI_JSON_URL")
927- # Create table from JSON data
928- table=$(build_table "$data")
929- echo -e "$table"
913+ if [[ "${CI}" = "true" ]]; then
914+ # Retrieve JSON data from URL
915+ data=$(get_json "$CI_JSON_URL")
916+ # Create table from JSON data
917+ table=$(build_table "$data")
918+ echo -e "$table"
930919
931- curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
932- -H "Accept: application/vnd.github.v3+json" \
933- "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
934- -d "{\\ "body\\ ": \\ "I am a bot, here are the test results for this PR: \\ n${CI_URL}\\ n${SHELLCHECK_URL}\\ n${table}\\ "}"'''
920+ curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
921+ -H "Accept: application/vnd.github.v3+json" \
922+ "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
923+ -d "{\\ "body\\ ": \\ "I am a bot, here are the test results for this PR: \\ n${CI_URL}\\ n${SHELLCHECK_URL}\\ n${table}\\ "}"
924+ else
925+ curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
926+ -H "Accept: application/vnd.github.v3+json" \
927+ "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
928+ -d "{\\ "body\\ ": \\ "I am a bot, here is the pushed image/manifest for this PR: \\ n\\ n\\ `${GITHUBIMAGE}:${META_TAG}\\ `\\ "}"
929+ fi
930+ '''
935931
936932 }
937933 }
@@ -958,6 +954,14 @@ pipeline {
958954 }
959955 }
960956 cleanup {
957+ sh ''' #! /bin/bash
958+ echo "Performing docker system prune!!"
959+ containers=$(docker ps -aq)
960+ if [[ -n "${containers}" ]]; then
961+ docker stop ${containers}
962+ fi
963+ docker system prune -af --volumes || :
964+ '''
961965 cleanWs()
962966 }
963967 }
0 commit comments