@@ -231,22 +231,67 @@ pipeline {
231
231
TEMPDIR=$(mktemp -d)
232
232
docker pull ghcr.io/linuxserver/jenkins-builder:latest
233
233
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -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 master
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 master
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
234
277
CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
235
278
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
236
279
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
238
281
mkdir -p ${TEMPDIR}/repo
239
282
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
240
283
cd ${TEMPDIR}/repo/${LS_REPO}
241
284
git checkout -f master
242
285
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
243
286
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
244
287
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
245
- rm -f ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE.md
246
288
cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || :
247
289
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
248
294
git add ${TEMPLATED_FILES}
249
- git rm .github/ISSUE_TEMPLATE.md || :
250
295
git commit -m 'Bot Updating Templated Files'
251
296
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
252
297
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
@@ -255,8 +300,8 @@ pipeline {
255
300
fi
256
301
mkdir -p ${TEMPDIR}/gitbook
257
302
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/
260
305
cd ${TEMPDIR}/gitbook/docker-documentation/
261
306
git add images/docker-${CONTAINER_NAME}.md
262
307
git commit -m 'Bot Updating Documentation'
@@ -266,13 +311,13 @@ pipeline {
266
311
git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates
267
312
git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
268
313
if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then
269
- sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-icon.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/${CONTAINER_NAME}.xml
314
+ sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-icon.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/ ${CONTAINER_NAME}.xml
270
315
fi
271
- if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then
316
+ if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/ ${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then
272
317
if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
273
318
echo "Image is on the ignore list, skipping Unraid template upload"
274
319
else
275
- cp ${TEMPDIR}/docker-${CONTAINER_NAME}/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
320
+ cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/ ${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
276
321
cd ${TEMPDIR}/unraid/templates/
277
322
git add unraid/${CONTAINER_NAME}.xml
278
323
git commit -m 'Bot Updating Unraid Template'
@@ -512,7 +557,7 @@ pipeline {
512
557
}
513
558
sh ''' #! /bin/bash
514
559
set -e
515
- docker pull ghcr.io/linuxserver/lsiodev- ci:latest
560
+ docker pull ghcr.io/linuxserver/ci:latest
516
561
if [ "${MULTIARCH}" == "true" ]; then
517
562
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
518
563
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
@@ -537,7 +582,7 @@ pipeline {
537
582
-e WEB_PATH=\" ${CI_WEBPATH}\" \
538
583
-e DO_REGION="ams3" \
539
584
-e DO_BUCKET="lsio-ci" \
540
- -t ghcr.io/linuxserver/lsiodev- ci:latest \
585
+ -t ghcr.io/linuxserver/ci:latest \
541
586
python /ci/ci.py'''
542
587
}
543
588
}
@@ -682,19 +727,19 @@ pipeline {
682
727
environment name : ' EXIT_STATUS' , value : ' '
683
728
}
684
729
steps {
685
- echo " Pushing New tag for current commit ${ EXT_RELEASE_CLEAN } -ls ${ LS_TAG_NUMBER } "
730
+ echo " Pushing New tag for current commit ${ META_TAG } "
686
731
sh ''' curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
687
- -d '{"tag":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER }'",\
732
+ -d '{"tag":"'${META_TAG }'",\
688
733
"object": "'${COMMIT_SHA}'",\
689
734
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\
690
735
"type": "commit",\
691
736
"tagger": {"name": "LinuxServer Jenkins","email": "[email protected] ","date": "'${GITHUB_DATE}'"}}' '''
692
737
echo " Pushing New release for Tag"
693
738
sh ''' #! /bin/bash
694
739
echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json
695
- echo '{"tag_name":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER }'",\
740
+ echo '{"tag_name":"'${META_TAG }'",\
696
741
"target_commitish": "master",\
697
- "name": "'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER }'",\
742
+ "name": "'${META_TAG }'",\
698
743
"body": "**LinuxServer Changes:**\\ n\\ n'${LS_RELEASE_NOTES}'\\ n**Remote Changes:**\\ n\\ n' > start
699
744
printf '","draft": false,"prerelease": false}' >> releasebody.json
700
745
paste -d'\\ 0' start releasebody.json > releasebody.json.done
@@ -721,15 +766,15 @@ pipeline {
721
766
TEMPDIR=$(mktemp -d)
722
767
docker pull ghcr.io/linuxserver/jenkins-builder:latest
723
768
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH="${BRANCH_NAME}" -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
724
- docker pull ghcr.io/linuxserver/lsiodev- readme-sync
769
+ docker pull ghcr.io/linuxserver/readme-sync
725
770
docker run --rm=true \
726
771
-e DOCKERHUB_USERNAME=$DOCKERUSER \
727
772
-e DOCKERHUB_PASSWORD=$DOCKERPASS \
728
773
-e GIT_REPOSITORY=${LS_USER}/${LS_REPO} \
729
774
-e DOCKER_REPOSITORY=${IMAGE} \
730
775
-e GIT_BRANCH=master \
731
776
-v ${TEMPDIR}/docker-${CONTAINER_NAME}:/mnt \
732
- ghcr.io/linuxserver/lsiodev- readme-sync bash -c 'node sync'
777
+ ghcr.io/linuxserver/readme-sync bash -c 'node sync'
733
778
rm -Rf ${TEMPDIR} '''
734
779
}
735
780
}
0 commit comments