Skip to content

Commit 19cd312

Browse files
Bot Updating Templated Files
1 parent b00371e commit 19cd312

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
@@ -42,7 +42,12 @@ pipeline {
4242
// Setup all the basic environment variables needed for the build
4343
stage("Set ENV Variables base"){
4444
steps{
45-
sh '''docker pull quay.io/skopeo/stable:v1 || : '''
45+
sh '''#! /bin/bash
46+
containers=$(docker ps -aq)
47+
if [[ -n "${containers}" ]]; then
48+
docker stop ${containers}
49+
fi
50+
docker system prune -af --volumes || : '''
4651
script{
4752
env.EXIT_STATUS = ''
4853
env.LS_RELEASE = sh(
@@ -214,12 +219,12 @@ pipeline {
214219
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
215220
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
216221
if (env.MULTIARCH == 'true') {
217-
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
222+
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
218223
} else {
219-
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
224+
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
220225
}
221-
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
222-
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
226+
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
227+
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
223228
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
224229
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST
225230
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/'
@@ -347,6 +352,8 @@ pipeline {
347352
git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
348353
if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
349354
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
355+
elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then
356+
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
350357
fi
351358
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
352359
cd ${TEMPDIR}/unraid/templates/
@@ -438,8 +445,7 @@ pipeline {
438445
}
439446
steps{
440447
sh '''#! /bin/bash
441-
set -e
442-
PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/bookstack") | .uuid')
448+
PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/bookstack") | .uuid' || :)
443449
if [ -z "${PACKAGE_UUID}" ]; then
444450
echo "Adding package to Scarf.sh"
445451
curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
@@ -549,9 +555,12 @@ pipeline {
549555
retry(5) {
550556
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
551557
}
552-
sh '''docker rmi \
553-
${IMAGE}:arm32v7-${META_TAG} \
554-
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
558+
sh '''#! /bin/bash
559+
containers=$(docker ps -aq)
560+
if [[ -n "${containers}" ]]; then
561+
docker stop ${containers}
562+
fi
563+
docker system prune -af --volumes || : '''
555564
}
556565
}
557566
stage('Build ARM64') {
@@ -584,9 +593,12 @@ pipeline {
584593
retry(5) {
585594
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
586595
}
587-
sh '''docker rmi \
588-
${IMAGE}:arm64v8-${META_TAG} \
589-
ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
596+
sh '''#! /bin/bash
597+
containers=$(docker ps -aq)
598+
if [[ -n "${containers}" ]]; then
599+
docker stop ${containers}
600+
fi
601+
docker system prune -af --volumes || : '''
590602
}
591603
}
592604
}
@@ -647,13 +659,6 @@ pipeline {
647659
environment name: 'EXIT_STATUS', value: ''
648660
}
649661
steps {
650-
sh '''#! /bin/bash
651-
echo "Packages were updated. Cleaning up the image and exiting."
652-
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
653-
docker rmi ${IMAGE}:amd64-${META_TAG}
654-
else
655-
docker rmi ${IMAGE}:${META_TAG}
656-
fi'''
657662
script{
658663
env.EXIT_STATUS = 'ABORTED'
659664
}
@@ -671,13 +676,6 @@ pipeline {
671676
}
672677
}
673678
steps {
674-
sh '''#! /bin/bash
675-
echo "There are no package updates. Cleaning up the image and exiting."
676-
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
677-
docker rmi ${IMAGE}:amd64-${META_TAG}
678-
else
679-
docker rmi ${IMAGE}:${META_TAG}
680-
fi'''
681679
script{
682680
env.EXIT_STATUS = 'ABORTED'
683681
}
@@ -778,17 +776,6 @@ pipeline {
778776
done
779777
'''
780778
}
781-
sh '''#! /bin/bash
782-
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
783-
docker rmi \
784-
${DELETEIMAGE}:${META_TAG} \
785-
${DELETEIMAGE}:${EXT_RELEASE_TAG} \
786-
${DELETEIMAGE}:latest || :
787-
if [ -n "${SEMVER}" ]; then
788-
docker rmi ${DELETEIMAGE}:${SEMVER} || :
789-
fi
790-
done
791-
'''
792779
}
793780
}
794781
}
@@ -882,29 +869,6 @@ pipeline {
882869
done
883870
'''
884871
}
885-
sh '''#! /bin/bash
886-
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
887-
docker rmi \
888-
${DELETEIMAGE}:amd64-${META_TAG} \
889-
${DELETEIMAGE}:amd64-latest \
890-
${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
891-
${DELETEIMAGE}:arm32v7-${META_TAG} \
892-
${DELETEIMAGE}:arm32v7-latest \
893-
${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
894-
${DELETEIMAGE}:arm64v8-${META_TAG} \
895-
${DELETEIMAGE}:arm64v8-latest \
896-
${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
897-
if [ -n "${SEMVER}" ]; then
898-
docker rmi \
899-
${DELETEIMAGE}:amd64-${SEMVER} \
900-
${DELETEIMAGE}:arm32v7-${SEMVER} \
901-
${DELETEIMAGE}:arm64v8-${SEMVER} || :
902-
fi
903-
done
904-
docker rmi \
905-
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
906-
ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :
907-
'''
908872
}
909873
}
910874
}
@@ -975,7 +939,6 @@ pipeline {
975939
stage('Pull Request Comment') {
976940
when {
977941
not {environment name: 'CHANGE_ID', value: ''}
978-
environment name: 'CI', value: 'true'
979942
environment name: 'EXIT_STATUS', value: ''
980943
}
981944
steps {
@@ -1029,16 +992,24 @@ pipeline {
1029992
echo "$escaped_table"
1030993
}
1031994
1032-
# Retrieve JSON data from URL
1033-
data=$(get_json "$CI_JSON_URL")
1034-
# Create table from JSON data
1035-
table=$(build_table "$data")
1036-
echo -e "$table"
995+
if [[ "${CI}" = "true" ]]; then
996+
# Retrieve JSON data from URL
997+
data=$(get_json "$CI_JSON_URL")
998+
# Create table from JSON data
999+
table=$(build_table "$data")
1000+
echo -e "$table"
10371001
1038-
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
1039-
-H "Accept: application/vnd.github.v3+json" \
1040-
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
1041-
-d "{\\"body\\": \\"I am a bot, here are the test results for this PR: \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}"'''
1002+
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
1003+
-H "Accept: application/vnd.github.v3+json" \
1004+
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
1005+
-d "{\\"body\\": \\"I am a bot, here are the test results for this PR: \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}"
1006+
else
1007+
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
1008+
-H "Accept: application/vnd.github.v3+json" \
1009+
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
1010+
-d "{\\"body\\": \\"I am a bot, here is the pushed image/manifest for this PR: \\n\\n\\`${GITHUBIMAGE}:${META_TAG}\\`\\"}"
1011+
fi
1012+
'''
10421013

10431014
}
10441015
}
@@ -1065,6 +1036,14 @@ pipeline {
10651036
}
10661037
}
10671038
cleanup {
1039+
sh '''#! /bin/bash
1040+
echo "Performing docker system prune!!"
1041+
containers=$(docker ps -aq)
1042+
if [[ -n "${containers}" ]]; then
1043+
docker stop ${containers}
1044+
fi
1045+
docker system prune -af --volumes || :
1046+
'''
10681047
cleanWs()
10691048
}
10701049
}

0 commit comments

Comments
 (0)