Skip to content

Commit a378e81

Browse files
Bot Updating Templated Files
1 parent a9f1c56 commit a378e81

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

Comments
 (0)