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

Commit b10457c

Browse files
Bot Updating Templated Files
1 parent 24c5fd8 commit b10457c

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
@@ -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

Comments
 (0)