Skip to content

Commit 6edada5

Browse files
Bot Updating Templated Files
1 parent 60834dc commit 6edada5

File tree

1 file changed

+52
-66
lines changed

1 file changed

+52
-66
lines changed

Jenkinsfile

Lines changed: 52 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)