mirror of
				https://github.com/linuxserver/docker-swag.git
				synced 2025-10-31 21:17:42 +09:00 
			
		
		
		
	Bot Updating Templated Files
This commit is contained in:
		
							
								
								
									
										297
									
								
								Jenkinsfile
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										297
									
								
								Jenkinsfile
									
									
									
									
										vendored
									
									
								
							| @@ -245,9 +245,11 @@ pipeline { | ||||
|                   -v ${WORKSPACE}:/mnt \ | ||||
|                   -e AWS_ACCESS_KEY_ID=\"${S3_KEY}\" \ | ||||
|                   -e AWS_SECRET_ACCESS_KEY=\"${S3_SECRET}\" \ | ||||
|                   ghcr.io/linuxserver/baseimage-alpine:3.17 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\ | ||||
|                     apk add --no-cache py3-pip && \ | ||||
|                     pip install s3cmd && \ | ||||
|                   ghcr.io/linuxserver/baseimage-alpine:3.19 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\ | ||||
|                     apk add --no-cache python3 && \ | ||||
|                     python3 -m venv /lsiopy && \ | ||||
|                     pip install --no-cache-dir -U pip && \ | ||||
|                     pip install --no-cache-dir s3cmd && \ | ||||
|                     s3cmd put --no-preserve --acl-public -m text/xml /mnt/shellcheck-result.xml s3://ci-tests.linuxserver.io/${IMAGE}/${META_TAG}/shellcheck-result.xml" || :''' | ||||
|         } | ||||
|       } | ||||
| @@ -262,150 +264,149 @@ pipeline { | ||||
|         } | ||||
|       } | ||||
|       steps { | ||||
|         withCredentials([ | ||||
|           [ | ||||
|             $class: 'UsernamePasswordMultiBinding', | ||||
|             credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207', | ||||
|             usernameVariable: 'DOCKERUSER', | ||||
|             passwordVariable: 'DOCKERPASS' | ||||
|           ] | ||||
|         ]) { | ||||
|           sh '''#! /bin/bash | ||||
|                 set -e | ||||
|                 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 pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master | ||||
|                   git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master | ||||
|                   echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} | ||||
|                   echo "Updating Jenkinsfile" | ||||
|                   rm -Rf ${TEMPDIR} | ||||
|                   exit 0 | ||||
|                 else | ||||
|                   echo "Jenkinsfile is up to date." | ||||
|         sh '''#! /bin/bash | ||||
|               set -e | ||||
|               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 pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master | ||||
|                 git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master | ||||
|                 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 .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml Dockerfile.armhf" | ||||
|               for i in ${OLD_TEMPLATES}; do | ||||
|                 if [[ -f "${i}" ]]; then | ||||
|                   TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}" | ||||
|                 fi | ||||
|                 # Stage 2 - Delete old templates | ||||
|                 OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml Dockerfile.armhf" | ||||
|                 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 | ||||
|                 for i in ${TEMPLATES_TO_DELETE}; do | ||||
|                   git rm "${i}" | ||||
|                 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 | ||||
|                   for i in ${TEMPLATES_TO_DELETE}; do | ||||
|                     git rm "${i}" | ||||
|                   done | ||||
|                   git commit -m 'Bot Updating Templated Files' | ||||
|                   git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master | ||||
|                   git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master | ||||
|                   echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} | ||||
|                   echo "Deleting old and deprecated 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) | ||||
|                 git commit -m 'Bot Updating Templated Files' | ||||
|                 git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master | ||||
|                 git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master | ||||
|                 echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} | ||||
|                 echo "Deleting old and deprecated 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}" ]] || ! 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} | ||||
|                 NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8) | ||||
|                 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 | ||||
|                   cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || : | ||||
|                   cp --parents readme-vars.yml ${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 readme-vars.yml ${TEMPLATED_FILES} | ||||
|                   git commit -m 'Bot Updating Templated Files' | ||||
|                   git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master | ||||
|                   git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master | ||||
|                   echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} | ||||
|                 mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows | ||||
|                 mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE | ||||
|                 cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || : | ||||
|                 cp --parents readme-vars.yml ${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 readme-vars.yml ${TEMPLATED_FILES} | ||||
|                 git commit -m 'Bot Updating Templated Files' | ||||
|                 git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master | ||||
|                 git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master | ||||
|                 echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} | ||||
|               else | ||||
|                 echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} | ||||
|               fi | ||||
|               mkdir -p ${TEMPDIR}/docs | ||||
|               git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/docs/docker-documentation | ||||
|               if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}"  ]] && [[ (! -f ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/docs/docker-documentation/docs/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}/docs/docker-documentation/docs/images/ | ||||
|                 cd ${TEMPDIR}/docs/docker-documentation | ||||
|                 GH_DOCS_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||') | ||||
|                 git add docs/images/docker-${CONTAINER_NAME}.md | ||||
|                 git commit -m 'Bot Updating Documentation' | ||||
|                 git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} --rebase | ||||
|                 git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} || \ | ||||
|                   (MAXWAIT="10" && echo "Push to docs failed, trying again in ${MAXWAIT} seconds" && \ | ||||
|                   sleep $((RANDOM % MAXWAIT)) && \ | ||||
|                   git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} --rebase && \ | ||||
|                   git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH}) | ||||
|               fi | ||||
|               mkdir -p ${TEMPDIR}/unraid | ||||
|               git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates | ||||
|               git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates | ||||
|               if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then | ||||
|                 sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | ||||
|               elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then | ||||
|                 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 | ||||
|               fi | ||||
|               if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -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 | ||||
|                 cd ${TEMPDIR}/unraid/templates/ | ||||
|                 GH_TEMPLATES_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||') | ||||
|                 if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then | ||||
|                   echo "Image is on the ignore list, marking Unraid template as deprecated" | ||||
|                   cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/ | ||||
|                   git add -u unraid/${CONTAINER_NAME}.xml | ||||
|                   git mv unraid/${CONTAINER_NAME}.xml unraid/deprecated/${CONTAINER_NAME}.xml || : | ||||
|                   git commit -m 'Bot Moving Deprecated Unraid Template' || : | ||||
|                 else | ||||
|                   echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} | ||||
|                   cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/ | ||||
|                   git add unraid/${CONTAINER_NAME}.xml | ||||
|                   git commit -m 'Bot Updating Unraid Template' | ||||
|                 fi | ||||
|                 mkdir -p ${TEMPDIR}/docs | ||||
|                 git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/docs/docker-documentation | ||||
|                 if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}"  ]] && [[ (! -f ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/docs/docker-documentation/docs/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}/docs/docker-documentation/docs/images/ | ||||
|                   cd ${TEMPDIR}/docs/docker-documentation | ||||
|                   GH_DOCS_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||') | ||||
|                   git add docs/images/docker-${CONTAINER_NAME}.md | ||||
|                   git commit -m 'Bot Updating Documentation' | ||||
|                   git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} | ||||
|                   git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} | ||||
|                 fi | ||||
|                 mkdir -p ${TEMPDIR}/unraid | ||||
|                 git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates | ||||
|                 git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates | ||||
|                 if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then | ||||
|                   sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | ||||
|                 elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then | ||||
|                   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 | ||||
|                 fi | ||||
|                 if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -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 | ||||
|                   cd ${TEMPDIR}/unraid/templates/ | ||||
|                   GH_TEMPLATES_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||') | ||||
|                   if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then | ||||
|                     echo "Image is on the ignore list, marking Unraid template as deprecated" | ||||
|                     cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/ | ||||
|                     git add -u unraid/${CONTAINER_NAME}.xml | ||||
|                     git mv unraid/${CONTAINER_NAME}.xml unraid/deprecated/${CONTAINER_NAME}.xml || : | ||||
|                     git commit -m 'Bot Moving Deprecated Unraid Template' || : | ||||
|                   else | ||||
|                     cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/ | ||||
|                     git add unraid/${CONTAINER_NAME}.xml | ||||
|                     git commit -m 'Bot Updating Unraid Template' | ||||
|                   fi | ||||
|                   git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} | ||||
|                   git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} | ||||
|                 fi | ||||
|                 # Stage 4 - Sync Readme to Docker Hub | ||||
|                 if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]]; then | ||||
|                   if [[ $(cat ${TEMPDIR}/docker-${CONTAINER_NAME}/README.md | wc -m) > 25000 ]]; then | ||||
|                     echo "Readme is longer than 25,000 characters. Syncing the lite version to Docker Hub" | ||||
|                     DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/README.lite" | ||||
|                   else | ||||
|                     echo "Syncing readme to Docker Hub" | ||||
|                     DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/README.md" | ||||
|                   fi | ||||
|                   DH_TOKEN=$(curl -d '{"username":"'${DOCKERUSER}'", "password":"'${DOCKERHUB_TOKEN}'"}' -H "Content-Type: application/json" -X POST https://hub.docker.com/v2/users/login | jq -r '.token') | ||||
|                   curl -s \ | ||||
|                     -H "Authorization: JWT ${DH_TOKEN}" \ | ||||
|                     -H "Content-Type: application/json" \ | ||||
|                     -X PATCH \ | ||||
|                     -d "{\\"full_description\\":$(jq -Rsa . ${DH_README_SYNC_PATH})}" \ | ||||
|                     https://hub.docker.com/v2/repositories/${DOCKERHUB_IMAGE} || : | ||||
|                 git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} --rebase | ||||
|                 git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} || \ | ||||
|                   (MAXWAIT="10" && echo "Push to unraid templates failed, trying again in ${MAXWAIT} seconds" && \ | ||||
|                   sleep $((RANDOM % MAXWAIT)) && \ | ||||
|                   git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} --rebase && \ | ||||
|                   git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH}) | ||||
|               fi | ||||
|               # Stage 4 - Sync Readme to Docker Hub | ||||
|               if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]]; then | ||||
|                 if [[ $(cat ${TEMPDIR}/docker-${CONTAINER_NAME}/README.md | wc -m) > 25000 ]]; then | ||||
|                   echo "Readme is longer than 25,000 characters. Syncing the lite version to Docker Hub" | ||||
|                   DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/README.lite" | ||||
|                 else | ||||
|                   echo "Not the default Github branch. Skipping readme sync to Docker Hub." | ||||
|                   echo "Syncing readme to Docker Hub" | ||||
|                   DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/README.md" | ||||
|                 fi | ||||
|                 rm -Rf ${TEMPDIR}''' | ||||
|           script{ | ||||
|             env.FILES_UPDATED = sh( | ||||
|               script: '''cat /tmp/${COMMIT_SHA}-${BUILD_NUMBER}''', | ||||
|               returnStdout: true).trim() | ||||
|           } | ||||
|                 DH_TOKEN=$(curl -d '{"username":"linuxserverci", "password":"'${DOCKERHUB_TOKEN}'"}' -H "Content-Type: application/json" -X POST https://hub.docker.com/v2/users/login | jq -r '.token') | ||||
|                 curl -s \ | ||||
|                   -H "Authorization: JWT ${DH_TOKEN}" \ | ||||
|                   -H "Content-Type: application/json" \ | ||||
|                   -X PATCH \ | ||||
|                   -d "{\\"full_description\\":$(jq -Rsa . ${DH_README_SYNC_PATH})}" \ | ||||
|                   https://hub.docker.com/v2/repositories/${DOCKERHUB_IMAGE} || : | ||||
|               else | ||||
|                 echo "Not the default Github branch. Skipping readme sync to Docker Hub." | ||||
|               fi | ||||
|               rm -Rf ${TEMPDIR}''' | ||||
|         script{ | ||||
|           env.FILES_UPDATED = sh( | ||||
|             script: '''cat /tmp/${COMMIT_SHA}-${BUILD_NUMBER}''', | ||||
|             returnStdout: true).trim() | ||||
|         } | ||||
|       } | ||||
|     } | ||||
| @@ -703,12 +704,6 @@ pipeline { | ||||
|       } | ||||
|       steps { | ||||
|         withCredentials([ | ||||
|           [ | ||||
|             $class: 'UsernamePasswordMultiBinding', | ||||
|             credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207', | ||||
|             usernameVariable: 'DOCKERUSER', | ||||
|             passwordVariable: 'DOCKERPASS' | ||||
|           ], | ||||
|           [ | ||||
|             $class: 'UsernamePasswordMultiBinding', | ||||
|             credentialsId: 'Quay.io-Robot', | ||||
| @@ -719,7 +714,7 @@ pipeline { | ||||
|           retry(5) { | ||||
|             sh '''#! /bin/bash | ||||
|                   set -e | ||||
|                   echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin | ||||
|                   echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin | ||||
|                   echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin | ||||
|                   echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin | ||||
|                   echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin | ||||
| @@ -750,12 +745,6 @@ pipeline { | ||||
|       } | ||||
|       steps { | ||||
|         withCredentials([ | ||||
|           [ | ||||
|             $class: 'UsernamePasswordMultiBinding', | ||||
|             credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207', | ||||
|             usernameVariable: 'DOCKERUSER', | ||||
|             passwordVariable: 'DOCKERPASS' | ||||
|           ], | ||||
|           [ | ||||
|             $class: 'UsernamePasswordMultiBinding', | ||||
|             credentialsId: 'Quay.io-Robot', | ||||
| @@ -766,7 +755,7 @@ pipeline { | ||||
|           retry(5) { | ||||
|             sh '''#! /bin/bash | ||||
|                   set -e | ||||
|                   echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin | ||||
|                   echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin | ||||
|                   echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin | ||||
|                   echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin | ||||
|                   echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin | ||||
|   | ||||
		Reference in New Issue
	
	Block a user