@@ -229,22 +229,67 @@ pipeline {
229229 TEMPDIR=$(mktemp -d)
230230 docker pull ghcr.io/linuxserver/jenkins-builder:latest
231231 docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=3.12 -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
232+ # Stage 1 - Jenkinsfile update
233+ if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
234+ mkdir -p ${TEMPDIR}/repo
235+ git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
236+ cd ${TEMPDIR}/repo/${LS_REPO}
237+ git checkout -f 3.12
238+ cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
239+ git add Jenkinsfile
240+ git commit -m 'Bot Updating Templated Files'
241+ git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
242+ echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
243+ echo "Updating Jenkinsfile"
244+ rm -Rf ${TEMPDIR}
245+ exit 0
246+ else
247+ echo "Jenkinsfile is up to date."
248+ fi
249+ # Stage 2 - Delete old templates
250+ OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md"
251+ for i in ${OLD_TEMPLATES}; do
252+ if [[ -f "${i}" ]]; then
253+ TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
254+ fi
255+ done
256+ if [[ -n "${TEMPLATES_TO_DELETE}" ]]; then
257+ mkdir -p ${TEMPDIR}/repo
258+ git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
259+ cd ${TEMPDIR}/repo/${LS_REPO}
260+ git checkout -f 3.12
261+ cd ${TEMPDIR}/docker-${CONTAINER_NAME}
262+ for i in ${TEMPLATES_TO_DELETE}; do
263+ git rm "${i}"
264+ done
265+ git commit -m 'Bot Updating Templated Files'
266+ git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
267+ echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
268+ echo "Deleting old templates"
269+ rm -Rf ${TEMPDIR}
270+ exit 0
271+ else
272+ echo "No templates to delete"
273+ fi
274+ # Stage 3 - Update templates
232275 CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
233276 cd ${TEMPDIR}/docker-${CONTAINER_NAME}
234277 NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
235- if [[ "${CURRENTHASH}" != "${NEWHASH}" ]]; then
278+ if [[ "${CURRENTHASH}" != "${NEWHASH}" ]] || ! grep -q '.jenkins-external' "${WORKSPACE}/.gitignore" 2>/dev/null ; then
236279 mkdir -p ${TEMPDIR}/repo
237280 git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
238281 cd ${TEMPDIR}/repo/${LS_REPO}
239282 git checkout -f 3.12
240283 cd ${TEMPDIR}/docker-${CONTAINER_NAME}
241284 mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
242285 mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
243- rm -f ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE.md
244286 cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || :
245287 cd ${TEMPDIR}/repo/${LS_REPO}/
288+ if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then
289+ echo ".jenkins-external" >> .gitignore
290+ git add .gitignore
291+ fi
246292 git add ${TEMPLATED_FILES}
247- git rm .github/ISSUE_TEMPLATE.md || :
248293 git commit -m 'Bot Updating Templated Files'
249294 git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
250295 echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
@@ -253,8 +298,8 @@ pipeline {
253298 fi
254299 mkdir -p ${TEMPDIR}/gitbook
255300 git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/gitbook/docker-documentation
256- 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
257- cp ${TEMPDIR}/docker-${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/
301+ 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
302+ cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/ docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/
258303 cd ${TEMPDIR}/gitbook/docker-documentation/
259304 git add images/docker-${CONTAINER_NAME}.md
260305 git commit -m 'Bot Updating Documentation'
@@ -479,7 +524,7 @@ pipeline {
479524 }
480525 sh ''' #! /bin/bash
481526 set -e
482- docker pull ghcr.io/linuxserver/lsiodev- ci:latest
527+ docker pull ghcr.io/linuxserver/ci:latest
483528 if [ "${MULTIARCH}" == "true" ]; then
484529 docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
485530 docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
@@ -504,7 +549,7 @@ pipeline {
504549 -e WEB_PATH=\" ${CI_WEBPATH}\" \
505550 -e DO_REGION="ams3" \
506551 -e DO_BUCKET="lsio-ci" \
507- -t ghcr.io/linuxserver/lsiodev- ci:latest \
552+ -t ghcr.io/linuxserver/ci:latest \
508553 python /ci/ci.py'''
509554 }
510555 }
@@ -646,19 +691,19 @@ pipeline {
646691 environment name : ' EXIT_STATUS' , value : ' '
647692 }
648693 steps {
649- echo " Pushing New tag for current commit ${ EXT_RELEASE_CLEAN } -ls ${ LS_TAG_NUMBER } "
694+ echo " Pushing New tag for current commit ${ META_TAG } "
650695 sh ''' curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
651- -d '{"tag":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER }'",\
696+ -d '{"tag":"'${META_TAG }'",\
652697 "object": "'${COMMIT_SHA}'",\
653698 "message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to 3.12",\
654699 "type": "commit",\
655700 "tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
656701 echo " Pushing New release for Tag"
657702 sh ''' #! /bin/bash
658703 echo "Updating base packages to ${PACKAGE_TAG}" > releasebody.json
659- echo '{"tag_name":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER }'",\
704+ echo '{"tag_name":"'${META_TAG }'",\
660705 "target_commitish": "3.12",\
661- "name": "'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER }'",\
706+ "name": "'${META_TAG }'",\
662707 "body": "**LinuxServer Changes:**\\ n\\ n'${LS_RELEASE_NOTES}'\\ n**OS Changes:**\\ n\\ n' > start
663708 printf '","draft": false,"prerelease": true}' >> releasebody.json
664709 paste -d'\\ 0' start releasebody.json > releasebody.json.done
@@ -685,15 +730,15 @@ pipeline {
685730 TEMPDIR=$(mktemp -d)
686731 docker pull ghcr.io/linuxserver/jenkins-builder:latest
687732 docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH="${BRANCH_NAME}" -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
688- docker pull ghcr.io/linuxserver/lsiodev- readme-sync
733+ docker pull ghcr.io/linuxserver/readme-sync
689734 docker run --rm=true \
690735 -e DOCKERHUB_USERNAME=$DOCKERUSER \
691736 -e DOCKERHUB_PASSWORD=$DOCKERPASS \
692737 -e GIT_REPOSITORY=${LS_USER}/${LS_REPO} \
693738 -e DOCKER_REPOSITORY=${IMAGE} \
694739 -e GIT_BRANCH=master \
695740 -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/mnt \
696- ghcr.io/linuxserver/lsiodev- readme-sync bash -c 'node sync'
741+ ghcr.io/linuxserver/readme-sync bash -c 'node sync'
697742 rm -Rf ${TEMPDIR} '''
698743 }
699744 }
0 commit comments