@@ -223,22 +223,67 @@ pipeline {
223
223
TEMPDIR=$(mktemp -d)
224
224
docker pull ghcr.io/linuxserver/jenkins-builder:latest
225
225
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
226
+ # Stage 1 - Jenkinsfile update
227
+ if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
228
+ mkdir -p ${TEMPDIR}/repo
229
+ git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
230
+ cd ${TEMPDIR}/repo/${LS_REPO}
231
+ git checkout -f master
232
+ cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
233
+ git add Jenkinsfile
234
+ git commit -m 'Bot Updating Templated Files'
235
+ git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
236
+ echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
237
+ echo "Updating Jenkinsfile"
238
+ rm -Rf ${TEMPDIR}
239
+ exit 0
240
+ else
241
+ echo "Jenkinsfile is up to date."
242
+ fi
243
+ # Stage 2 - Delete old templates
244
+ OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md"
245
+ for i in ${OLD_TEMPLATES}; do
246
+ if [[ -f "${i}" ]]; then
247
+ TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
248
+ fi
249
+ done
250
+ if [[ -n "${TEMPLATES_TO_DELETE}" ]]; then
251
+ mkdir -p ${TEMPDIR}/repo
252
+ git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
253
+ cd ${TEMPDIR}/repo/${LS_REPO}
254
+ git checkout -f master
255
+ cd ${TEMPDIR}/docker-${CONTAINER_NAME}
256
+ for i in ${TEMPLATES_TO_DELETE}; do
257
+ git rm "${i}"
258
+ done
259
+ git commit -m 'Bot Updating Templated Files'
260
+ git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
261
+ echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
262
+ echo "Deleting old templates"
263
+ rm -Rf ${TEMPDIR}
264
+ exit 0
265
+ else
266
+ echo "No templates to delete"
267
+ fi
268
+ # Stage 3 - Update templates
226
269
CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
227
270
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
228
271
NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
229
- if [[ "${CURRENTHASH}" != "${NEWHASH}" ]]; then
272
+ if [[ "${CURRENTHASH}" != "${NEWHASH}" ]] || ! grep -q '.jenkins-external' "${WORKSPACE}/.gitignore" 2>/dev/null ; then
230
273
mkdir -p ${TEMPDIR}/repo
231
274
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
232
275
cd ${TEMPDIR}/repo/${LS_REPO}
233
276
git checkout -f master
234
277
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
235
278
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
236
279
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
237
- rm -f ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE.md
238
280
cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || :
239
281
cd ${TEMPDIR}/repo/${LS_REPO}/
282
+ if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then
283
+ echo ".jenkins-external" >> .gitignore
284
+ git add .gitignore
285
+ fi
240
286
git add ${TEMPLATED_FILES}
241
- git rm .github/ISSUE_TEMPLATE.md || :
242
287
git commit -m 'Bot Updating Templated Files'
243
288
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
244
289
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
@@ -247,8 +292,8 @@ pipeline {
247
292
fi
248
293
mkdir -p ${TEMPDIR}/gitbook
249
294
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/gitbook/docker-documentation
250
- 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
251
- cp ${TEMPDIR}/docker-${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/
295
+ 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
296
+ cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/ docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/
252
297
cd ${TEMPDIR}/gitbook/docker-documentation/
253
298
git add images/docker-${CONTAINER_NAME}.md
254
299
git commit -m 'Bot Updating Documentation'
@@ -487,7 +532,7 @@ pipeline {
487
532
}
488
533
sh ''' #! /bin/bash
489
534
set -e
490
- docker pull ghcr.io/linuxserver/lsiodev- ci:latest
535
+ docker pull ghcr.io/linuxserver/ci:latest
491
536
if [ "${MULTIARCH}" == "true" ]; then
492
537
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
493
538
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
@@ -512,7 +557,7 @@ pipeline {
512
557
-e WEB_PATH=\" ${CI_WEBPATH}\" \
513
558
-e DO_REGION="ams3" \
514
559
-e DO_BUCKET="lsio-ci" \
515
- -t ghcr.io/linuxserver/lsiodev- ci:latest \
560
+ -t ghcr.io/linuxserver/ci:latest \
516
561
python /ci/ci.py'''
517
562
}
518
563
}
@@ -657,19 +702,19 @@ pipeline {
657
702
environment name : ' EXIT_STATUS' , value : ' '
658
703
}
659
704
steps {
660
- echo " Pushing New tag for current commit ${ EXT_RELEASE_CLEAN } -ls ${ LS_TAG_NUMBER } "
705
+ echo " Pushing New tag for current commit ${ META_TAG } "
661
706
sh ''' curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
662
- -d '{"tag":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER }'",\
707
+ -d '{"tag":"'${META_TAG }'",\
663
708
"object": "'${COMMIT_SHA}'",\
664
709
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\
665
710
"type": "commit",\
666
711
"tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
667
712
echo " Pushing New release for Tag"
668
713
sh ''' #! /bin/bash
669
714
echo "Updating base packages to ${PACKAGE_TAG}" > releasebody.json
670
- echo '{"tag_name":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER }'",\
715
+ echo '{"tag_name":"'${META_TAG }'",\
671
716
"target_commitish": "master",\
672
- "name": "'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER }'",\
717
+ "name": "'${META_TAG }'",\
673
718
"body": "**LinuxServer Changes:**\\ n\\ n'${LS_RELEASE_NOTES}'\\ n**OS Changes:**\\ n\\ n' > start
674
719
printf '","draft": false,"prerelease": false}' >> releasebody.json
675
720
paste -d'\\ 0' start releasebody.json > releasebody.json.done
@@ -696,15 +741,15 @@ pipeline {
696
741
TEMPDIR=$(mktemp -d)
697
742
docker pull ghcr.io/linuxserver/jenkins-builder:latest
698
743
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH="${BRANCH_NAME}" -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
699
- docker pull ghcr.io/linuxserver/lsiodev- readme-sync
744
+ docker pull ghcr.io/linuxserver/readme-sync
700
745
docker run --rm=true \
701
746
-e DOCKERHUB_USERNAME=$DOCKERUSER \
702
747
-e DOCKERHUB_PASSWORD=$DOCKERPASS \
703
748
-e GIT_REPOSITORY=${LS_USER}/${LS_REPO} \
704
749
-e DOCKER_REPOSITORY=${IMAGE} \
705
750
-e GIT_BRANCH=master \
706
751
-v ${TEMPDIR}/docker-${CONTAINER_NAME}:/mnt \
707
- ghcr.io/linuxserver/lsiodev- readme-sync bash -c 'node sync'
752
+ ghcr.io/linuxserver/readme-sync bash -c 'node sync'
708
753
rm -Rf ${TEMPDIR} '''
709
754
}
710
755
}
0 commit comments