mirror of
				https://github.com/linuxserver/docker-jellyfin.git
				synced 2025-10-31 04:57:38 +09:00 
			
		
		
		
	Bot Updating Templated Files
This commit is contained in:
		
							
								
								
									
										121
									
								
								Jenkinsfile
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										121
									
								
								Jenkinsfile
									
									
									
									
										vendored
									
									
								
							| @@ -39,7 +39,12 @@ pipeline { | ||||
|     // Setup all the basic environment variables needed for the build | ||||
|     stage("Set ENV Variables base"){ | ||||
|       steps{ | ||||
|         sh '''docker pull quay.io/skopeo/stable:v1 || : ''' | ||||
|         sh '''#! /bin/bash | ||||
|               containers=$(docker ps -aq) | ||||
|               if [[ -n "${containers}" ]]; then | ||||
|                 docker stop ${containers} | ||||
|               fi | ||||
|               docker system prune -af --volumes || : ''' | ||||
|         script{ | ||||
|           env.EXIT_STATUS = '' | ||||
|           env.LS_RELEASE = sh( | ||||
| @@ -204,12 +209,12 @@ pipeline { | ||||
|           env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME | ||||
|           env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME | ||||
|           if (env.MULTIARCH == 'true') { | ||||
|             env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST | ||||
|             env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST | ||||
|           } else { | ||||
|             env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST | ||||
|             env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST | ||||
|           } | ||||
|           env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST | ||||
|           env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST | ||||
|           env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST | ||||
|           env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST | ||||
|           env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN | ||||
|           env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST | ||||
|           env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/' | ||||
| @@ -337,6 +342,8 @@ pipeline { | ||||
|               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}" == "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 | ||||
|                 cd ${TEMPDIR}/unraid/templates/ | ||||
| @@ -428,8 +435,7 @@ pipeline { | ||||
|       } | ||||
|       steps{ | ||||
|         sh '''#! /bin/bash | ||||
|               set -e | ||||
|               PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/jellyfin") | .uuid') | ||||
|               PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/jellyfin") | .uuid' || :) | ||||
|               if [ -z "${PACKAGE_UUID}" ]; then | ||||
|                 echo "Adding package to Scarf.sh" | ||||
|                 curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \ | ||||
| @@ -539,9 +545,12 @@ pipeline { | ||||
|             retry(5) { | ||||
|               sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}" | ||||
|             } | ||||
|             sh '''docker rmi \ | ||||
|                   ${IMAGE}:arm32v7-${META_TAG} \ | ||||
|                   ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} || :''' | ||||
|             sh '''#! /bin/bash | ||||
|                   containers=$(docker ps -aq) | ||||
|                   if [[ -n "${containers}" ]]; then | ||||
|                     docker stop ${containers} | ||||
|                   fi | ||||
|                   docker system prune -af --volumes || : ''' | ||||
|           } | ||||
|         } | ||||
|         stage('Build ARM64') { | ||||
| @@ -574,9 +583,12 @@ pipeline { | ||||
|             retry(5) { | ||||
|               sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}" | ||||
|             } | ||||
|             sh '''docker rmi \ | ||||
|                   ${IMAGE}:arm64v8-${META_TAG} \ | ||||
|                   ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :''' | ||||
|             sh '''#! /bin/bash | ||||
|                   containers=$(docker ps -aq) | ||||
|                   if [[ -n "${containers}" ]]; then | ||||
|                     docker stop ${containers} | ||||
|                   fi | ||||
|                   docker system prune -af --volumes || : ''' | ||||
|           } | ||||
|         } | ||||
|       } | ||||
| @@ -637,13 +649,6 @@ pipeline { | ||||
|         environment name: 'EXIT_STATUS', value: '' | ||||
|       } | ||||
|       steps { | ||||
|         sh '''#! /bin/bash | ||||
|               echo "Packages were updated. Cleaning up the image and exiting." | ||||
|               if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then | ||||
|                 docker rmi ${IMAGE}:amd64-${META_TAG} | ||||
|               else | ||||
|                 docker rmi ${IMAGE}:${META_TAG} | ||||
|               fi''' | ||||
|         script{ | ||||
|           env.EXIT_STATUS = 'ABORTED' | ||||
|         } | ||||
| @@ -661,13 +666,6 @@ pipeline { | ||||
|         } | ||||
|       } | ||||
|       steps { | ||||
|         sh '''#! /bin/bash | ||||
|               echo "There are no package updates. Cleaning up the image and exiting." | ||||
|               if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then | ||||
|                 docker rmi ${IMAGE}:amd64-${META_TAG} | ||||
|               else | ||||
|                 docker rmi ${IMAGE}:${META_TAG} | ||||
|               fi''' | ||||
|         script{ | ||||
|           env.EXIT_STATUS = 'ABORTED' | ||||
|         } | ||||
| @@ -768,17 +766,6 @@ pipeline { | ||||
|                   done | ||||
|                ''' | ||||
|           } | ||||
|           sh '''#! /bin/bash | ||||
|                 for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do | ||||
|                   docker rmi \ | ||||
|                   ${DELETEIMAGE}:${META_TAG} \ | ||||
|                   ${DELETEIMAGE}:${EXT_RELEASE_TAG} \ | ||||
|                   ${DELETEIMAGE}:latest || : | ||||
|                   if [ -n "${SEMVER}" ]; then | ||||
|                     docker rmi ${DELETEIMAGE}:${SEMVER} || : | ||||
|                   fi | ||||
|                 done | ||||
|              ''' | ||||
|         } | ||||
|       } | ||||
|     } | ||||
| @@ -872,29 +859,6 @@ pipeline { | ||||
|                   done | ||||
|                ''' | ||||
|           } | ||||
|           sh '''#! /bin/bash | ||||
|                 for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do | ||||
|                   docker rmi \ | ||||
|                   ${DELETEIMAGE}:amd64-${META_TAG} \ | ||||
|                   ${DELETEIMAGE}:amd64-latest \ | ||||
|                   ${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \ | ||||
|                   ${DELETEIMAGE}:arm32v7-${META_TAG} \ | ||||
|                   ${DELETEIMAGE}:arm32v7-latest \ | ||||
|                   ${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \ | ||||
|                   ${DELETEIMAGE}:arm64v8-${META_TAG} \ | ||||
|                   ${DELETEIMAGE}:arm64v8-latest \ | ||||
|                   ${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || : | ||||
|                   if [ -n "${SEMVER}" ]; then | ||||
|                     docker rmi \ | ||||
|                     ${DELETEIMAGE}:amd64-${SEMVER} \ | ||||
|                     ${DELETEIMAGE}:arm32v7-${SEMVER} \ | ||||
|                     ${DELETEIMAGE}:arm64v8-${SEMVER} || : | ||||
|                   fi | ||||
|                 done | ||||
|                 docker rmi \ | ||||
|                 ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \ | ||||
|                 ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || : | ||||
|              ''' | ||||
|         } | ||||
|       } | ||||
|     } | ||||
| @@ -965,7 +929,6 @@ pipeline { | ||||
|     stage('Pull Request Comment') { | ||||
|       when { | ||||
|         not {environment name: 'CHANGE_ID', value: ''} | ||||
|         environment name: 'CI', value: 'true' | ||||
|         environment name: 'EXIT_STATUS', value: '' | ||||
|       } | ||||
|       steps { | ||||
| @@ -1019,16 +982,24 @@ pipeline { | ||||
|               echo "$escaped_table" | ||||
|             } | ||||
|  | ||||
|             # Retrieve JSON data from URL | ||||
|             data=$(get_json "$CI_JSON_URL") | ||||
|             # Create table from JSON data | ||||
|             table=$(build_table "$data") | ||||
|             echo -e "$table" | ||||
|             if [[ "${CI}" = "true" ]]; then | ||||
|               # Retrieve JSON data from URL | ||||
|               data=$(get_json "$CI_JSON_URL") | ||||
|               # Create table from JSON data | ||||
|               table=$(build_table "$data") | ||||
|               echo -e "$table" | ||||
|  | ||||
|             curl -X POST -H "Authorization: token $GITHUB_TOKEN" \ | ||||
|               -H "Accept: application/vnd.github.v3+json" \ | ||||
|               "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \ | ||||
|               -d "{\\"body\\": \\"I am a bot, here are the test results for this PR: \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}"''' | ||||
|               curl -X POST -H "Authorization: token $GITHUB_TOKEN" \ | ||||
|                 -H "Accept: application/vnd.github.v3+json" \ | ||||
|                 "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \ | ||||
|                 -d "{\\"body\\": \\"I am a bot, here are the test results for this PR: \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}" | ||||
|             else | ||||
|               curl -X POST -H "Authorization: token $GITHUB_TOKEN" \ | ||||
|                 -H "Accept: application/vnd.github.v3+json" \ | ||||
|                 "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \ | ||||
|                 -d "{\\"body\\": \\"I am a bot, here is the pushed image/manifest for this PR: \\n\\n\\`${GITHUBIMAGE}:${META_TAG}\\`\\"}" | ||||
|             fi | ||||
|             ''' | ||||
|  | ||||
|       } | ||||
|     } | ||||
| @@ -1055,6 +1026,14 @@ pipeline { | ||||
|       } | ||||
|     } | ||||
|     cleanup { | ||||
|       sh '''#! /bin/bash | ||||
|             echo "Performing docker system prune!!" | ||||
|             containers=$(docker ps -aq) | ||||
|             if [[ -n "${containers}" ]]; then | ||||
|               docker stop ${containers} | ||||
|             fi | ||||
|             docker system prune -af --volumes || : | ||||
|          ''' | ||||
|       cleanWs() | ||||
|     } | ||||
|   } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user