-
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
202b1f5
commit 890c04f
Showing
1 changed file
with
58 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -224,22 +224,67 @@ pipeline { | |
TEMPDIR=$(mktemp -d) | ||
docker pull ghcr.io/linuxserver/jenkins-builder:latest | ||
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest | ||
# Stage 1 - Jenkinsfile update | ||
if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then | ||
mkdir -p ${TEMPDIR}/repo | ||
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} | ||
cd ${TEMPDIR}/repo/${LS_REPO} | ||
git checkout -f master | ||
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/ | ||
git add Jenkinsfile | ||
git commit -m 'Bot Updating Templated Files' | ||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all | ||
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} | ||
echo "Updating Jenkinsfile" | ||
rm -Rf ${TEMPDIR} | ||
exit 0 | ||
else | ||
echo "Jenkinsfile is up to date." | ||
fi | ||
# Stage 2 - Delete old templates | ||
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md" | ||
for i in ${OLD_TEMPLATES}; do | ||
if [[ -f "${i}" ]]; then | ||
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}" | ||
fi | ||
done | ||
if [[ -n "${TEMPLATES_TO_DELETE}" ]]; then | ||
mkdir -p ${TEMPDIR}/repo | ||
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} | ||
cd ${TEMPDIR}/repo/${LS_REPO} | ||
git checkout -f master | ||
cd ${TEMPDIR}/docker-${CONTAINER_NAME} | ||
for i in ${TEMPLATES_TO_DELETE}; do | ||
git rm "${i}" | ||
done | ||
git commit -m 'Bot Updating Templated Files' | ||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all | ||
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} | ||
echo "Deleting old templates" | ||
rm -Rf ${TEMPDIR} | ||
exit 0 | ||
else | ||
echo "No templates to delete" | ||
fi | ||
# Stage 3 - Update templates | ||
CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8) | ||
cd ${TEMPDIR}/docker-${CONTAINER_NAME} | ||
NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8) | ||
if [[ "${CURRENTHASH}" != "${NEWHASH}" ]]; then | ||
if [[ "${CURRENTHASH}" != "${NEWHASH}" ]] || ! grep -q '.jenkins-external' "${WORKSPACE}/.gitignore" 2>/dev/null; then | ||
mkdir -p ${TEMPDIR}/repo | ||
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} | ||
cd ${TEMPDIR}/repo/${LS_REPO} | ||
git checkout -f master | ||
cd ${TEMPDIR}/docker-${CONTAINER_NAME} | ||
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows | ||
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE | ||
rm -f ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE.md | ||
cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || : | ||
cd ${TEMPDIR}/repo/${LS_REPO}/ | ||
if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then | ||
echo ".jenkins-external" >> .gitignore | ||
git add .gitignore | ||
fi | ||
git add ${TEMPLATED_FILES} | ||
git rm .github/ISSUE_TEMPLATE.md || : | ||
git commit -m 'Bot Updating Templated Files' | ||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all | ||
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} | ||
|
@@ -248,8 +293,8 @@ pipeline { | |
fi | ||
mkdir -p ${TEMPDIR}/gitbook | ||
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/gitbook/docker-documentation | ||
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 | ||
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/ | ||
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 | ||
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/ | ||
cd ${TEMPDIR}/gitbook/docker-documentation/ | ||
git add images/docker-${CONTAINER_NAME}.md | ||
git commit -m 'Bot Updating Documentation' | ||
|
@@ -488,7 +533,7 @@ pipeline { | |
} | ||
sh '''#! /bin/bash | ||
set -e | ||
docker pull ghcr.io/linuxserver/lsiodev-ci:latest | ||
docker pull ghcr.io/linuxserver/ci:latest | ||
if [ "${MULTIARCH}" == "true" ]; then | ||
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} | ||
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} | ||
|
@@ -513,7 +558,7 @@ pipeline { | |
-e WEB_PATH=\"${CI_WEBPATH}\" \ | ||
-e DO_REGION="ams3" \ | ||
-e DO_BUCKET="lsio-ci" \ | ||
-t ghcr.io/linuxserver/lsiodev-ci:latest \ | ||
-t ghcr.io/linuxserver/ci:latest \ | ||
python /ci/ci.py''' | ||
} | ||
} | ||
|
@@ -658,19 +703,19 @@ pipeline { | |
environment name: 'EXIT_STATUS', value: '' | ||
} | ||
steps { | ||
echo "Pushing New tag for current commit ${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}" | ||
echo "Pushing New tag for current commit ${META_TAG}" | ||
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \ | ||
-d '{"tag":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\ | ||
-d '{"tag":"'${META_TAG}'",\ | ||
"object": "'${COMMIT_SHA}'",\ | ||
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\ | ||
"type": "commit",\ | ||
"tagger": {"name": "LinuxServer Jenkins","email": "[email protected]","date": "'${GITHUB_DATE}'"}}' ''' | ||
echo "Pushing New release for Tag" | ||
sh '''#! /bin/bash | ||
echo "Updating PIP version of ${EXT_PIP} to ${EXT_RELEASE_CLEAN}" > releasebody.json | ||
echo '{"tag_name":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\ | ||
echo '{"tag_name":"'${META_TAG}'",\ | ||
"target_commitish": "master",\ | ||
"name": "'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\ | ||
"name": "'${META_TAG}'",\ | ||
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n**PIP Changes:**\\n\\n' > start | ||
printf '","draft": false,"prerelease": false}' >> releasebody.json | ||
paste -d'\\0' start releasebody.json > releasebody.json.done | ||
|
@@ -697,15 +742,15 @@ pipeline { | |
TEMPDIR=$(mktemp -d) | ||
docker pull ghcr.io/linuxserver/jenkins-builder:latest | ||
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH="${BRANCH_NAME}" -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest | ||
docker pull ghcr.io/linuxserver/lsiodev-readme-sync | ||
docker pull ghcr.io/linuxserver/readme-sync | ||
docker run --rm=true \ | ||
-e DOCKERHUB_USERNAME=$DOCKERUSER \ | ||
-e DOCKERHUB_PASSWORD=$DOCKERPASS \ | ||
-e GIT_REPOSITORY=${LS_USER}/${LS_REPO} \ | ||
-e DOCKER_REPOSITORY=${IMAGE} \ | ||
-e GIT_BRANCH=master \ | ||
-v ${TEMPDIR}/docker-${CONTAINER_NAME}:/mnt \ | ||
ghcr.io/linuxserver/lsiodev-readme-sync bash -c 'node sync' | ||
ghcr.io/linuxserver/readme-sync bash -c 'node sync' | ||
rm -Rf ${TEMPDIR} ''' | ||
} | ||
} | ||
|