@@ -231,22 +231,67 @@ pipeline {
231231 TEMPDIR=$(mktemp -d)
232232 docker pull ghcr.io/linuxserver/jenkins-builder:latest
233233 docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=alpine -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
234+ # Stage 1 - Jenkinsfile update
235+ if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
236+ mkdir -p ${TEMPDIR}/repo
237+ git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
238+ cd ${TEMPDIR}/repo/${LS_REPO}
239+ git checkout -f alpine
240+ cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
241+ git add Jenkinsfile
242+ git commit -m 'Bot Updating Templated Files'
243+ git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
244+ echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
245+ echo "Updating Jenkinsfile"
246+ rm -Rf ${TEMPDIR}
247+ exit 0
248+ else
249+ echo "Jenkinsfile is up to date."
250+ fi
251+ # Stage 2 - Delete old templates
252+ OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md"
253+ for i in ${OLD_TEMPLATES}; do
254+ if [[ -f "${i}" ]]; then
255+ TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
256+ fi
257+ done
258+ if [[ -n "${TEMPLATES_TO_DELETE}" ]]; then
259+ mkdir -p ${TEMPDIR}/repo
260+ git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
261+ cd ${TEMPDIR}/repo/${LS_REPO}
262+ git checkout -f alpine
263+ cd ${TEMPDIR}/docker-${CONTAINER_NAME}
264+ for i in ${TEMPLATES_TO_DELETE}; do
265+ git rm "${i}"
266+ done
267+ git commit -m 'Bot Updating Templated Files'
268+ git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
269+ echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
270+ echo "Deleting old templates"
271+ rm -Rf ${TEMPDIR}
272+ exit 0
273+ else
274+ echo "No templates to delete"
275+ fi
276+ # Stage 3 - Update templates
234277 CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
235278 cd ${TEMPDIR}/docker-${CONTAINER_NAME}
236279 NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
237- if [[ "${CURRENTHASH}" != "${NEWHASH}" ]]; then
280+ if [[ "${CURRENTHASH}" != "${NEWHASH}" ]] || ! grep -q '.jenkins-external' "${WORKSPACE}/.gitignore" 2>/dev/null ; then
238281 mkdir -p ${TEMPDIR}/repo
239282 git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
240283 cd ${TEMPDIR}/repo/${LS_REPO}
241284 git checkout -f alpine
242285 cd ${TEMPDIR}/docker-${CONTAINER_NAME}
243286 mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
244287 mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
245- rm -f ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE.md
246288 cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || :
247289 cd ${TEMPDIR}/repo/${LS_REPO}/
290+ if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then
291+ echo ".jenkins-external" >> .gitignore
292+ git add .gitignore
293+ fi
248294 git add ${TEMPLATED_FILES}
249- git rm .github/ISSUE_TEMPLATE.md || :
250295 git commit -m 'Bot Updating Templated Files'
251296 git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
252297 echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
@@ -255,8 +300,8 @@ pipeline {
255300 fi
256301 mkdir -p ${TEMPDIR}/gitbook
257302 git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/gitbook/docker-documentation
258- 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
259- cp ${TEMPDIR}/docker-${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/
303+ 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
304+ cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/ docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/
260305 cd ${TEMPDIR}/gitbook/docker-documentation/
261306 git add images/docker-${CONTAINER_NAME}.md
262307 git commit -m 'Bot Updating Documentation'
@@ -495,7 +540,7 @@ pipeline {
495540 }
496541 sh ''' #! /bin/bash
497542 set -e
498- docker pull ghcr.io/linuxserver/lsiodev- ci:latest
543+ docker pull ghcr.io/linuxserver/ci:latest
499544 if [ "${MULTIARCH}" == "true" ]; then
500545 docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
501546 docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
@@ -520,7 +565,7 @@ pipeline {
520565 -e WEB_PATH=\" ${CI_WEBPATH}\" \
521566 -e DO_REGION="ams3" \
522567 -e DO_BUCKET="lsio-ci" \
523- -t ghcr.io/linuxserver/lsiodev- ci:latest \
568+ -t ghcr.io/linuxserver/ci:latest \
524569 python /ci/ci.py'''
525570 }
526571 }
@@ -665,19 +710,19 @@ pipeline {
665710 environment name : ' EXIT_STATUS' , value : ' '
666711 }
667712 steps {
668- echo " Pushing New tag for current commit ${ EXT_RELEASE_CLEAN } -ls ${ LS_TAG_NUMBER } "
713+ echo " Pushing New tag for current commit ${ META_TAG } "
669714 sh ''' curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
670- -d '{"tag":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER }'",\
715+ -d '{"tag":"'${META_TAG }'",\
671716 "object": "'${COMMIT_SHA}'",\
672717 "message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to alpine",\
673718 "type": "commit",\
674719 "tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
675720 echo " Pushing New release for Tag"
676721 sh ''' #! /bin/bash
677722 echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json
678- echo '{"tag_name":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER }'",\
723+ echo '{"tag_name":"'${META_TAG }'",\
679724 "target_commitish": "alpine",\
680- "name": "'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER }'",\
725+ "name": "'${META_TAG }'",\
681726 "body": "**LinuxServer Changes:**\\ n\\ n'${LS_RELEASE_NOTES}'\\ n**Remote Changes:**\\ n\\ n' > start
682727 printf '","draft": false,"prerelease": true}' >> releasebody.json
683728 paste -d'\\ 0' start releasebody.json > releasebody.json.done
@@ -704,15 +749,15 @@ pipeline {
704749 TEMPDIR=$(mktemp -d)
705750 docker pull ghcr.io/linuxserver/jenkins-builder:latest
706751 docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH="${BRANCH_NAME}" -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
707- docker pull ghcr.io/linuxserver/lsiodev- readme-sync
752+ docker pull ghcr.io/linuxserver/readme-sync
708753 docker run --rm=true \
709754 -e DOCKERHUB_USERNAME=$DOCKERUSER \
710755 -e DOCKERHUB_PASSWORD=$DOCKERPASS \
711756 -e GIT_REPOSITORY=${LS_USER}/${LS_REPO} \
712757 -e DOCKER_REPOSITORY=${IMAGE} \
713758 -e GIT_BRANCH=master \
714759 -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/mnt \
715- ghcr.io/linuxserver/lsiodev- readme-sync bash -c 'node sync'
760+ ghcr.io/linuxserver/readme-sync bash -c 'node sync'
716761 rm -Rf ${TEMPDIR} '''
717762 }
718763 }
0 commit comments