Skip to content
This repository was archived by the owner on Oct 25, 2023. It is now read-only.

Commit ff86d0d

Browse files
Bot Updating Templated Files
1 parent 0fc795b commit ff86d0d

File tree

1 file changed

+50
-71
lines changed

1 file changed

+50
-71
lines changed

Jenkinsfile

Lines changed: 50 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,12 @@ pipeline {
4141
// Setup all the basic environment variables needed for the build
4242
stage("Set ENV Variables base"){
4343
steps{
44-
sh '''docker pull quay.io/skopeo/stable:v1 || : '''
44+
sh '''#! /bin/bash
45+
containers=$(docker ps -aq)
46+
if [[ -n "${containers}" ]]; then
47+
docker stop ${containers}
48+
fi
49+
docker system prune -af --volumes || : '''
4550
script{
4651
env.EXIT_STATUS = ''
4752
env.LS_RELEASE = sh(
@@ -206,12 +211,12 @@ pipeline {
206211
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
207212
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
208213
if (env.MULTIARCH == 'true') {
209-
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
214+
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
210215
} else {
211-
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
216+
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
212217
}
213-
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
214-
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
218+
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
219+
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
215220
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
216221
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST
217222
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/'
@@ -339,6 +344,8 @@ pipeline {
339344
git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
340345
if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
341346
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
347+
elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then
348+
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
342349
fi
343350
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
344351
cd ${TEMPDIR}/unraid/templates/
@@ -430,8 +437,7 @@ pipeline {
430437
}
431438
steps{
432439
sh '''#! /bin/bash
433-
set -e
434-
PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/embystat") | .uuid')
440+
PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/embystat") | .uuid' || :)
435441
if [ -z "${PACKAGE_UUID}" ]; then
436442
echo "Adding package to Scarf.sh"
437443
curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
@@ -541,9 +547,12 @@ pipeline {
541547
retry(5) {
542548
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
543549
}
544-
sh '''docker rmi \
545-
${IMAGE}:arm32v7-${META_TAG} \
546-
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
550+
sh '''#! /bin/bash
551+
containers=$(docker ps -aq)
552+
if [[ -n "${containers}" ]]; then
553+
docker stop ${containers}
554+
fi
555+
docker system prune -af --volumes || : '''
547556
}
548557
}
549558
stage('Build ARM64') {
@@ -576,9 +585,12 @@ pipeline {
576585
retry(5) {
577586
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
578587
}
579-
sh '''docker rmi \
580-
${IMAGE}:arm64v8-${META_TAG} \
581-
ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
588+
sh '''#! /bin/bash
589+
containers=$(docker ps -aq)
590+
if [[ -n "${containers}" ]]; then
591+
docker stop ${containers}
592+
fi
593+
docker system prune -af --volumes || : '''
582594
}
583595
}
584596
}
@@ -639,13 +651,6 @@ pipeline {
639651
environment name: 'EXIT_STATUS', value: ''
640652
}
641653
steps {
642-
sh '''#! /bin/bash
643-
echo "Packages were updated. Cleaning up the image and exiting."
644-
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
645-
docker rmi ${IMAGE}:amd64-${META_TAG}
646-
else
647-
docker rmi ${IMAGE}:${META_TAG}
648-
fi'''
649654
script{
650655
env.EXIT_STATUS = 'ABORTED'
651656
}
@@ -663,13 +668,6 @@ pipeline {
663668
}
664669
}
665670
steps {
666-
sh '''#! /bin/bash
667-
echo "There are no package updates. Cleaning up the image and exiting."
668-
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
669-
docker rmi ${IMAGE}:amd64-${META_TAG}
670-
else
671-
docker rmi ${IMAGE}:${META_TAG}
672-
fi'''
673671
script{
674672
env.EXIT_STATUS = 'ABORTED'
675673
}
@@ -770,17 +768,6 @@ pipeline {
770768
done
771769
'''
772770
}
773-
sh '''#! /bin/bash
774-
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
775-
docker rmi \
776-
${DELETEIMAGE}:${META_TAG} \
777-
${DELETEIMAGE}:${EXT_RELEASE_TAG} \
778-
${DELETEIMAGE}:latest || :
779-
if [ -n "${SEMVER}" ]; then
780-
docker rmi ${DELETEIMAGE}:${SEMVER} || :
781-
fi
782-
done
783-
'''
784771
}
785772
}
786773
}
@@ -874,29 +861,6 @@ pipeline {
874861
done
875862
'''
876863
}
877-
sh '''#! /bin/bash
878-
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
879-
docker rmi \
880-
${DELETEIMAGE}:amd64-${META_TAG} \
881-
${DELETEIMAGE}:amd64-latest \
882-
${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
883-
${DELETEIMAGE}:arm32v7-${META_TAG} \
884-
${DELETEIMAGE}:arm32v7-latest \
885-
${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
886-
${DELETEIMAGE}:arm64v8-${META_TAG} \
887-
${DELETEIMAGE}:arm64v8-latest \
888-
${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
889-
if [ -n "${SEMVER}" ]; then
890-
docker rmi \
891-
${DELETEIMAGE}:amd64-${SEMVER} \
892-
${DELETEIMAGE}:arm32v7-${SEMVER} \
893-
${DELETEIMAGE}:arm64v8-${SEMVER} || :
894-
fi
895-
done
896-
docker rmi \
897-
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
898-
ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :
899-
'''
900864
}
901865
}
902866
}
@@ -967,7 +931,6 @@ pipeline {
967931
stage('Pull Request Comment') {
968932
when {
969933
not {environment name: 'CHANGE_ID', value: ''}
970-
environment name: 'CI', value: 'true'
971934
environment name: 'EXIT_STATUS', value: ''
972935
}
973936
steps {
@@ -1021,16 +984,24 @@ pipeline {
1021984
echo "$escaped_table"
1022985
}
1023986
1024-
# Retrieve JSON data from URL
1025-
data=$(get_json "$CI_JSON_URL")
1026-
# Create table from JSON data
1027-
table=$(build_table "$data")
1028-
echo -e "$table"
987+
if [[ "${CI}" = "true" ]]; then
988+
# Retrieve JSON data from URL
989+
data=$(get_json "$CI_JSON_URL")
990+
# Create table from JSON data
991+
table=$(build_table "$data")
992+
echo -e "$table"
1029993
1030-
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
1031-
-H "Accept: application/vnd.github.v3+json" \
1032-
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
1033-
-d "{\\"body\\": \\"I am a bot, here are the test results for this PR: \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}"'''
994+
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
995+
-H "Accept: application/vnd.github.v3+json" \
996+
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
997+
-d "{\\"body\\": \\"I am a bot, here are the test results for this PR: \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}"
998+
else
999+
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
1000+
-H "Accept: application/vnd.github.v3+json" \
1001+
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
1002+
-d "{\\"body\\": \\"I am a bot, here is the pushed image/manifest for this PR: \\n\\n\\`${GITHUBIMAGE}:${META_TAG}\\`\\"}"
1003+
fi
1004+
'''
10341005

10351006
}
10361007
}
@@ -1057,6 +1028,14 @@ pipeline {
10571028
}
10581029
}
10591030
cleanup {
1031+
sh '''#! /bin/bash
1032+
echo "Performing docker system prune!!"
1033+
containers=$(docker ps -aq)
1034+
if [[ -n "${containers}" ]]; then
1035+
docker stop ${containers}
1036+
fi
1037+
docker system prune -af --volumes || :
1038+
'''
10601039
cleanWs()
10611040
}
10621041
}

0 commit comments

Comments
 (0)