@@ -241,22 +241,67 @@ pipeline {
241241 TEMPDIR=$(mktemp -d)
242242 docker pull ghcr.io/linuxserver/jenkins-builder:latest
243243 docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
244+ # Stage 1 - Jenkinsfile update
245+ if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
246+ mkdir -p ${TEMPDIR}/repo
247+ git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
248+ cd ${TEMPDIR}/repo/${LS_REPO}
249+ git checkout -f master
250+ cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
251+ git add Jenkinsfile
252+ git commit -m 'Bot Updating Templated Files'
253+ git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
254+ echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
255+ echo "Updating Jenkinsfile"
256+ rm -Rf ${TEMPDIR}
257+ exit 0
258+ else
259+ echo "Jenkinsfile is up to date."
260+ fi
261+ # Stage 2 - Delete old templates
262+ OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md"
263+ for i in ${OLD_TEMPLATES}; do
264+ if [[ -f "${i}" ]]; then
265+ TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
266+ fi
267+ done
268+ if [[ -n "${TEMPLATES_TO_DELETE}" ]]; then
269+ mkdir -p ${TEMPDIR}/repo
270+ git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
271+ cd ${TEMPDIR}/repo/${LS_REPO}
272+ git checkout -f master
273+ cd ${TEMPDIR}/docker-${CONTAINER_NAME}
274+ for i in ${TEMPLATES_TO_DELETE}; do
275+ git rm "${i}"
276+ done
277+ git commit -m 'Bot Updating Templated Files'
278+ git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
279+ echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
280+ echo "Deleting old templates"
281+ rm -Rf ${TEMPDIR}
282+ exit 0
283+ else
284+ echo "No templates to delete"
285+ fi
286+ # Stage 3 - Update templates
244287 CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
245288 cd ${TEMPDIR}/docker-${CONTAINER_NAME}
246289 NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
247- if [[ "${CURRENTHASH}" != "${NEWHASH}" ]]; then
290+ if [[ "${CURRENTHASH}" != "${NEWHASH}" ]] || ! grep -q '.jenkins-external' "${WORKSPACE}/.gitignore" 2>/dev/null ; then
248291 mkdir -p ${TEMPDIR}/repo
249292 git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
250293 cd ${TEMPDIR}/repo/${LS_REPO}
251294 git checkout -f master
252295 cd ${TEMPDIR}/docker-${CONTAINER_NAME}
253296 mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
254297 mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
255- rm -f ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE.md
256298 cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || :
257299 cd ${TEMPDIR}/repo/${LS_REPO}/
300+ if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then
301+ echo ".jenkins-external" >> .gitignore
302+ git add .gitignore
303+ fi
258304 git add ${TEMPLATED_FILES}
259- git rm .github/ISSUE_TEMPLATE.md || :
260305 git commit -m 'Bot Updating Templated Files'
261306 git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
262307 echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
@@ -265,8 +310,8 @@ pipeline {
265310 fi
266311 mkdir -p ${TEMPDIR}/gitbook
267312 git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/gitbook/docker-documentation
268- if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then
269- cp ${TEMPDIR}/docker-${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/
313+ if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/ docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then
314+ cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/ docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/
270315 cd ${TEMPDIR}/gitbook/docker-documentation/
271316 git add images/docker-${CONTAINER_NAME}.md
272317 git commit -m 'Bot Updating Documentation'
@@ -276,13 +321,13 @@ pipeline {
276321 git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates
277322 git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
278323 if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then
279- sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-icon.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/${CONTAINER_NAME}.xml
324+ 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
280325 fi
281- 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}/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then
326+ 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
282327 if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
283328 echo "Image is on the ignore list, skipping Unraid template upload"
284329 else
285- cp ${TEMPDIR}/docker-${CONTAINER_NAME}/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
330+ cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/ ${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
286331 cd ${TEMPDIR}/unraid/templates/
287332 git add unraid/${CONTAINER_NAME}.xml
288333 git commit -m 'Bot Updating Unraid Template'
@@ -522,7 +567,7 @@ pipeline {
522567 }
523568 sh ''' #! /bin/bash
524569 set -e
525- docker pull ghcr.io/linuxserver/lsiodev- ci:latest
570+ docker pull ghcr.io/linuxserver/ci:latest
526571 if [ "${MULTIARCH}" == "true" ]; then
527572 docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
528573 docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
@@ -547,7 +592,7 @@ pipeline {
547592 -e WEB_PATH=\" ${CI_WEBPATH}\" \
548593 -e DO_REGION="ams3" \
549594 -e DO_BUCKET="lsio-ci" \
550- -t ghcr.io/linuxserver/lsiodev- ci:latest \
595+ -t ghcr.io/linuxserver/ci:latest \
551596 python /ci/ci.py'''
552597 }
553598 }
@@ -692,19 +737,19 @@ pipeline {
692737 environment name : ' EXIT_STATUS' , value : ' '
693738 }
694739 steps {
695- echo " Pushing New tag for current commit ${ EXT_RELEASE_CLEAN } -ls ${ LS_TAG_NUMBER } "
740+ echo " Pushing New tag for current commit ${ META_TAG } "
696741 sh ''' curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
697- -d '{"tag":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER }'",\
742+ -d '{"tag":"'${META_TAG }'",\
698743 "object": "'${COMMIT_SHA}'",\
699744 "message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\
700745 "type": "commit",\
701746 "tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
702747 echo " Pushing New release for Tag"
703748 sh ''' #! /bin/bash
704749 curl -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq '. |.body' | sed 's:^.\\ (.*\\ ).$:\\ 1:' > releasebody.json
705- echo '{"tag_name":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER }'",\
750+ echo '{"tag_name":"'${META_TAG }'",\
706751 "target_commitish": "master",\
707- "name": "'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER }'",\
752+ "name": "'${META_TAG }'",\
708753 "body": "**LinuxServer Changes:**\\ n\\ n'${LS_RELEASE_NOTES}'\\ n**'${EXT_REPO}' Changes:**\\ n\\ n' > start
709754 printf '","draft": false,"prerelease": false}' >> releasebody.json
710755 paste -d'\\ 0' start releasebody.json > releasebody.json.done
@@ -731,15 +776,15 @@ pipeline {
731776 TEMPDIR=$(mktemp -d)
732777 docker pull ghcr.io/linuxserver/jenkins-builder:latest
733778 docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH="${BRANCH_NAME}" -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
734- docker pull ghcr.io/linuxserver/lsiodev- readme-sync
779+ docker pull ghcr.io/linuxserver/readme-sync
735780 docker run --rm=true \
736781 -e DOCKERHUB_USERNAME=$DOCKERUSER \
737782 -e DOCKERHUB_PASSWORD=$DOCKERPASS \
738783 -e GIT_REPOSITORY=${LS_USER}/${LS_REPO} \
739784 -e DOCKER_REPOSITORY=${IMAGE} \
740785 -e GIT_BRANCH=master \
741786 -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/mnt \
742- ghcr.io/linuxserver/lsiodev- readme-sync bash -c 'node sync'
787+ ghcr.io/linuxserver/readme-sync bash -c 'node sync'
743788 rm -Rf ${TEMPDIR} '''
744789 }
745790 }
0 commit comments