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

Commit 9689e5a

Browse files
Bot Updating Templated Files
1 parent 9423b30 commit 9689e5a

File tree

1 file changed

+58
-13
lines changed

1 file changed

+58
-13
lines changed

Jenkinsfile

Lines changed: 58 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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'
@@ -491,7 +536,7 @@ pipeline {
491536
}
492537
sh '''#! /bin/bash
493538
set -e
494-
docker pull ghcr.io/linuxserver/lsiodev-ci:latest
539+
docker pull ghcr.io/linuxserver/ci:latest
495540
if [ "${MULTIARCH}" == "true" ]; then
496541
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
497542
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
@@ -516,7 +561,7 @@ pipeline {
516561
-e WEB_PATH=\"${CI_WEBPATH}\" \
517562
-e DO_REGION="ams3" \
518563
-e DO_BUCKET="lsio-ci" \
519-
-t ghcr.io/linuxserver/lsiodev-ci:latest \
564+
-t ghcr.io/linuxserver/ci:latest \
520565
python /ci/ci.py'''
521566
}
522567
}
@@ -658,19 +703,19 @@ pipeline {
658703
environment name: 'EXIT_STATUS', value: ''
659704
}
660705
steps {
661-
echo "Pushing New tag for current commit ${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}"
706+
echo "Pushing New tag for current commit ${META_TAG}"
662707
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
663-
-d '{"tag":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
708+
-d '{"tag":"'${META_TAG}'",\
664709
"object": "'${COMMIT_SHA}'",\
665710
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\
666711
"type": "commit",\
667712
"tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
668713
echo "Pushing New release for Tag"
669714
sh '''#! /bin/bash
670715
curl -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq '. |.body' | sed 's:^.\\(.*\\).$:\\1:' > releasebody.json
671-
echo '{"tag_name":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
716+
echo '{"tag_name":"'${META_TAG}'",\
672717
"target_commitish": "master",\
673-
"name": "'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
718+
"name": "'${META_TAG}'",\
674719
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n**'${EXT_REPO}' Changes:**\\n\\n' > start
675720
printf '","draft": false,"prerelease": false}' >> releasebody.json
676721
paste -d'\\0' start releasebody.json > releasebody.json.done
@@ -697,15 +742,15 @@ pipeline {
697742
TEMPDIR=$(mktemp -d)
698743
docker pull ghcr.io/linuxserver/jenkins-builder:latest
699744
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH="${BRANCH_NAME}" -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
700-
docker pull ghcr.io/linuxserver/lsiodev-readme-sync
745+
docker pull ghcr.io/linuxserver/readme-sync
701746
docker run --rm=true \
702747
-e DOCKERHUB_USERNAME=$DOCKERUSER \
703748
-e DOCKERHUB_PASSWORD=$DOCKERPASS \
704749
-e GIT_REPOSITORY=${LS_USER}/${LS_REPO} \
705750
-e DOCKER_REPOSITORY=${IMAGE} \
706751
-e GIT_BRANCH=master \
707752
-v ${TEMPDIR}/docker-${CONTAINER_NAME}:/mnt \
708-
ghcr.io/linuxserver/lsiodev-readme-sync bash -c 'node sync'
753+
ghcr.io/linuxserver/readme-sync bash -c 'node sync'
709754
rm -Rf ${TEMPDIR} '''
710755
}
711756
}

0 commit comments

Comments
 (0)