mirror of
				https://github.com/linuxserver/docker-jellyfin.git
				synced 2025-10-31 21:17:39 +09:00 
			
		
		
		
	Merge pull request #307 from linuxserver/nightly-jemalloc
This commit is contained in:
		
							
								
								
									
										0
									
								
								.editorconfig
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								.editorconfig
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										0
									
								
								.github/CONTRIBUTING.md
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								.github/CONTRIBUTING.md
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										0
									
								
								.github/FUNDING.yml
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								.github/FUNDING.yml
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										0
									
								
								.github/ISSUE_TEMPLATE/config.yml
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								.github/ISSUE_TEMPLATE/config.yml
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										0
									
								
								.github/ISSUE_TEMPLATE/issue.bug.yml
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								.github/ISSUE_TEMPLATE/issue.bug.yml
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										0
									
								
								.github/ISSUE_TEMPLATE/issue.feature.yml
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								.github/ISSUE_TEMPLATE/issue.feature.yml
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										0
									
								
								.github/PULL_REQUEST_TEMPLATE.md
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								.github/PULL_REQUEST_TEMPLATE.md
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										0
									
								
								.github/workflows/call_issue_pr_tracker.yml
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								.github/workflows/call_issue_pr_tracker.yml
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										0
									
								
								.github/workflows/call_issues_cron.yml
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								.github/workflows/call_issues_cron.yml
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										0
									
								
								.github/workflows/greetings.yml
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								.github/workflows/greetings.yml
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										0
									
								
								.github/workflows/permissions.yml
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								.github/workflows/permissions.yml
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							| @@ -25,11 +25,13 @@ RUN \ | |||||||
|     JELLYFIN_RELEASE=$(curl -sX GET https://repo.jellyfin.org/ubuntu/dists/noble/unstable/binary-amd64/Packages |grep -A 7 -m 1 'Package: jellyfin-server' | awk -F ': ' '/Version/{print $2;exit}'); \ |     JELLYFIN_RELEASE=$(curl -sX GET https://repo.jellyfin.org/ubuntu/dists/noble/unstable/binary-amd64/Packages |grep -A 7 -m 1 'Package: jellyfin-server' | awk -F ': ' '/Version/{print $2;exit}'); \ | ||||||
|   fi && \ |   fi && \ | ||||||
|   apt-get update && \ |   apt-get update && \ | ||||||
|   apt-get install -y \ |   apt-get install -y --no-install-recommends \ | ||||||
|     at \ |     at \ | ||||||
|     jellyfin=${JELLYFIN_RELEASE} \ |     libjemalloc2 \ | ||||||
|     mesa-va-drivers \ |     mesa-va-drivers \ | ||||||
|     xmlstarlet && \ |     xmlstarlet && \ | ||||||
|  |   apt-get install -y --no-install-recommends \ | ||||||
|  |     jellyfin=${JELLYFIN_RELEASE} && \ | ||||||
|   printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \ |   printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \ | ||||||
|   echo "**** cleanup ****" && \ |   echo "**** cleanup ****" && \ | ||||||
|   rm -rf \ |   rm -rf \ | ||||||
|   | |||||||
| @@ -25,13 +25,15 @@ RUN \ | |||||||
|     JELLYFIN_RELEASE=$(curl -sX GET https://repo.jellyfin.org/ubuntu/dists/noble/unstable/binary-amd64/Packages |grep -A 7 -m 1 'Package: jellyfin-server' | awk -F ': ' '/Version/{print $2;exit}'); \ |     JELLYFIN_RELEASE=$(curl -sX GET https://repo.jellyfin.org/ubuntu/dists/noble/unstable/binary-amd64/Packages |grep -A 7 -m 1 'Package: jellyfin-server' | awk -F ': ' '/Version/{print $2;exit}'); \ | ||||||
|   fi && \ |   fi && \ | ||||||
|   apt-get update && \ |   apt-get update && \ | ||||||
|   apt-get install -y \ |   apt-get install -y --no-install-recommends \ | ||||||
|     at \ |     at \ | ||||||
|     jellyfin=${JELLYFIN_RELEASE} \ |     libjemalloc2 \ | ||||||
|     libomxil-bellagio0 \ |     libomxil-bellagio0 \ | ||||||
|     libomxil-bellagio-bin \ |     libomxil-bellagio-bin \ | ||||||
|     libraspberrypi0 \ |     libraspberrypi0 \ | ||||||
|     xmlstarlet && \ |     xmlstarlet && \ | ||||||
|  |   apt-get install -y --no-install-recommends \ | ||||||
|  |     jellyfin=${JELLYFIN_RELEASE} && \ | ||||||
|   printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \ |   printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \ | ||||||
|   echo "**** cleanup ****" && \ |   echo "**** cleanup ****" && \ | ||||||
|   rm -rf \ |   rm -rf \ | ||||||
|   | |||||||
							
								
								
									
										89
									
								
								Jenkinsfile
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										89
									
								
								Jenkinsfile
									
									
									
									
										vendored
									
									
								
							| @@ -32,7 +32,7 @@ pipeline { | |||||||
|     CI_WEB='true' |     CI_WEB='true' | ||||||
|     CI_PORT='8096' |     CI_PORT='8096' | ||||||
|     CI_SSL='false' |     CI_SSL='false' | ||||||
|     CI_DELAY='120' |     CI_DELAY='300' | ||||||
|     CI_DOCKERENV='' |     CI_DOCKERENV='' | ||||||
|     CI_AUTH='' |     CI_AUTH='' | ||||||
|     CI_WEBPATH='' |     CI_WEBPATH='' | ||||||
| @@ -208,6 +208,7 @@ pipeline { | |||||||
|           env.META_TAG = 'nightly-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER |           env.META_TAG = 'nightly-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER | ||||||
|           env.EXT_RELEASE_TAG = 'nightly-version-' + env.EXT_RELEASE_CLEAN |           env.EXT_RELEASE_TAG = 'nightly-version-' + env.EXT_RELEASE_CLEAN | ||||||
|           env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' |           env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' | ||||||
|  |           env.CITEST_IMAGETAG = 'latest' | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
| @@ -233,6 +234,7 @@ pipeline { | |||||||
|           env.EXT_RELEASE_TAG = 'nightly-version-' + env.EXT_RELEASE_CLEAN |           env.EXT_RELEASE_TAG = 'nightly-version-' + env.EXT_RELEASE_CLEAN | ||||||
|           env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/' |           env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/' | ||||||
|           env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' |           env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' | ||||||
|  |           env.CITEST_IMAGETAG = 'develop' | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
| @@ -258,6 +260,7 @@ pipeline { | |||||||
|           env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST |           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/' |           env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/' | ||||||
|           env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' |           env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache' | ||||||
|  |           env.CITEST_IMAGETAG = 'develop' | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
| @@ -615,13 +618,16 @@ pipeline { | |||||||
|                     echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --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 $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin | ||||||
|                     echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin |                     echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin | ||||||
|  |  | ||||||
|                     if [[ "${PACKAGE_CHECK}" != "true" ]]; then |                     if [[ "${PACKAGE_CHECK}" != "true" ]]; then | ||||||
|  |                       declare -A pids | ||||||
|                       IFS=',' read -ra CACHE <<< "$BUILDCACHE" |                       IFS=',' read -ra CACHE <<< "$BUILDCACHE" | ||||||
|                       for i in "${CACHE[@]}"; do |                       for i in "${CACHE[@]}"; do | ||||||
|                         docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} & |                         docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} & | ||||||
|  |                         pids[$!]="$i" | ||||||
|                       done |                       done | ||||||
|                       for p in $(jobs -p); do |                       for p in "${!pids[@]}"; do | ||||||
|                         wait "$p" || { echo "job $p failed" >&2; exit 1; } |                         wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; } | ||||||
|                       done |                       done | ||||||
|                     fi |                     fi | ||||||
|                 ''' |                 ''' | ||||||
| @@ -681,13 +687,16 @@ pipeline { | |||||||
|                         echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --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 $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin | ||||||
|                         echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin |                         echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin | ||||||
|  |  | ||||||
|                         if [[ "${PACKAGE_CHECK}" != "true" ]]; then |                         if [[ "${PACKAGE_CHECK}" != "true" ]]; then | ||||||
|  |                           declare -A pids | ||||||
|                           IFS=',' read -ra CACHE <<< "$BUILDCACHE" |                           IFS=',' read -ra CACHE <<< "$BUILDCACHE" | ||||||
|                           for i in "${CACHE[@]}"; do |                           for i in "${CACHE[@]}"; do | ||||||
|                             docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} & |                             docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} & | ||||||
|  |                             pids[$!]="$i" | ||||||
|                           done |                           done | ||||||
|                           for p in $(jobs -p); do |                           for p in "${!pids[@]}"; do | ||||||
|                             wait "$p" || { echo "job $p failed" >&2; exit 1; } |                             wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; } | ||||||
|                           done |                           done | ||||||
|                         fi |                         fi | ||||||
|                     ''' |                     ''' | ||||||
| @@ -741,12 +750,14 @@ pipeline { | |||||||
|                         echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --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 |                         echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin | ||||||
|                         if [[ "${PACKAGE_CHECK}" != "true" ]]; then |                         if [[ "${PACKAGE_CHECK}" != "true" ]]; then | ||||||
|  |                           declare -A pids | ||||||
|                           IFS=',' read -ra CACHE <<< "$BUILDCACHE" |                           IFS=',' read -ra CACHE <<< "$BUILDCACHE" | ||||||
|                           for i in "${CACHE[@]}"; do |                           for i in "${CACHE[@]}"; do | ||||||
|                             docker push ${i}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} & |                             docker push ${i}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} & | ||||||
|  |                             pids[$!]="$i" | ||||||
|                           done |                           done | ||||||
|                           for p in $(jobs -p); do |                           for p in "${!pids[@]}"; do | ||||||
|                             wait "$p" || { echo "job $p failed" >&2; exit 1; } |                             wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; } | ||||||
|                           done |                           done | ||||||
|                         fi |                         fi | ||||||
|                     ''' |                     ''' | ||||||
| @@ -871,7 +882,7 @@ pipeline { | |||||||
|                     CI_DOCKERENV="LSIO_FIRST_PARTY=true" |                     CI_DOCKERENV="LSIO_FIRST_PARTY=true" | ||||||
|                   fi |                   fi | ||||||
|                 fi |                 fi | ||||||
|                 docker pull ghcr.io/linuxserver/ci:latest |                 docker pull ghcr.io/linuxserver/ci:${CITEST_IMAGETAG} | ||||||
|                 if [ "${MULTIARCH}" == "true" ]; then |                 if [ "${MULTIARCH}" == "true" ]; then | ||||||
|                   docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64 |                   docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64 | ||||||
|                   docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} |                   docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} | ||||||
| @@ -895,7 +906,7 @@ pipeline { | |||||||
|                 -e WEB_PATH=\"${CI_WEBPATH}\" \ |                 -e WEB_PATH=\"${CI_WEBPATH}\" \ | ||||||
|                 -e NODE_NAME=\"${NODE_NAME}\" \ |                 -e NODE_NAME=\"${NODE_NAME}\" \ | ||||||
|                 -e SYFT_IMAGE_TAG=\"${CI_SYFT_IMAGE_TAG:-${SYFT_IMAGE_TAG}}\" \ |                 -e SYFT_IMAGE_TAG=\"${CI_SYFT_IMAGE_TAG:-${SYFT_IMAGE_TAG}}\" \ | ||||||
|                 -t ghcr.io/linuxserver/ci:latest \ |                 -t ghcr.io/linuxserver/ci:${CITEST_IMAGETAG} \ | ||||||
|                 python3 test_build.py''' |                 python3 test_build.py''' | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
| @@ -921,9 +932,11 @@ pipeline { | |||||||
|                           CACHEIMAGE=${i} |                           CACHEIMAGE=${i} | ||||||
|                       fi |                       fi | ||||||
|                   done |                   done | ||||||
|                   docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:nightly -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} |                   docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:nightly -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \ | ||||||
|  |                     { [[ "${PUSHIMAGE}" != "${QUAYIMAGE}" ]] && exit 1; } | ||||||
|                   if [ -n "${SEMVER}" ]; then |                   if [ -n "${SEMVER}" ]; then | ||||||
|                     docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} |                     docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \ | ||||||
|  |                       { [[ "${PUSHIMAGE}" != "${QUAYIMAGE}" ]] && exit 1; } | ||||||
|                   fi |                   fi | ||||||
|                 done |                 done | ||||||
|               ''' |               ''' | ||||||
| @@ -948,20 +961,27 @@ pipeline { | |||||||
|                           CACHEIMAGE=${i} |                           CACHEIMAGE=${i} | ||||||
|                       fi |                       fi | ||||||
|                   done |                   done | ||||||
|                   docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-nightly -t ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} |                   docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-nightly -t ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \ | ||||||
|                   docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${META_TAG} -t ${MANIFESTIMAGE}:arm64v8-nightly -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} |                     { [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]] && exit 1; } | ||||||
|  |                   docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${META_TAG} -t ${MANIFESTIMAGE}:arm64v8-nightly -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || \ | ||||||
|  |                     { [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]] && exit 1; } | ||||||
|                   if [ -n "${SEMVER}" ]; then |                   if [ -n "${SEMVER}" ]; then | ||||||
|                     docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} |                     docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \ | ||||||
|                     docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${SEMVER} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} |                       { [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]] && exit 1; } | ||||||
|  |                     docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${SEMVER} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || \ | ||||||
|  |                       { [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]] && exit 1; } | ||||||
|                   fi |                   fi | ||||||
|                 done |                 done | ||||||
|                 for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do |                 for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do | ||||||
|                   docker buildx imagetools create -t ${MANIFESTIMAGE}:nightly ${MANIFESTIMAGE}:amd64-nightly ${MANIFESTIMAGE}:arm64v8-nightly |                   docker buildx imagetools create -t ${MANIFESTIMAGE}:nightly ${MANIFESTIMAGE}:amd64-nightly ${MANIFESTIMAGE}:arm64v8-nightly || \ | ||||||
|                   docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} |                     { [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]] && exit 1; } | ||||||
|  |                   docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} || \ | ||||||
|                   docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} |                     { [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]] && exit 1; } | ||||||
|  |                   docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} || \ | ||||||
|  |                     { [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]] && exit 1; } | ||||||
|                   if [ -n "${SEMVER}" ]; then |                   if [ -n "${SEMVER}" ]; then | ||||||
|                     docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} |                     docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} || \ | ||||||
|  |                       { [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]] && exit 1; } | ||||||
|                   fi |                   fi | ||||||
|                 done |                 done | ||||||
|               ''' |               ''' | ||||||
| @@ -979,6 +999,16 @@ pipeline { | |||||||
|         environment name: 'EXIT_STATUS', value: '' |         environment name: 'EXIT_STATUS', value: '' | ||||||
|       } |       } | ||||||
|       steps { |       steps { | ||||||
|  |         echo "Auto-generating release notes" | ||||||
|  |         sh '''if [ "$(git tag --points-at HEAD)" != "" ]; then | ||||||
|  |             echo "Existing tag points to current commit, suggesting no new LS changes" | ||||||
|  |             AUTO_RELEASE_NOTES="No changes" | ||||||
|  |           else | ||||||
|  |             AUTO_RELEASE_NOTES=$(curl -fsL -H "Authorization: token ${GITHUB_TOKEN}" -H "Accept: application/vnd.github+json" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases/generate-notes  \ | ||||||
|  |               -d '{"tag_name":"'${META_TAG}'",\ | ||||||
|  |                   "target_commitish": "nightly"}' \ | ||||||
|  |               | jq -r '.body' | sed 's|## What.s Changed||') | ||||||
|  |           fi''' | ||||||
|         echo "Pushing New tag for current commit ${META_TAG}" |         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 \ |         sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \ | ||||||
|         -d '{"tag":"'${META_TAG}'",\ |         -d '{"tag":"'${META_TAG}'",\ | ||||||
| @@ -989,12 +1019,19 @@ pipeline { | |||||||
|         echo "Pushing New release for Tag" |         echo "Pushing New release for Tag" | ||||||
|         sh '''#! /bin/bash |         sh '''#! /bin/bash | ||||||
|               echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json |               echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json | ||||||
|               echo '{"tag_name":"'${META_TAG}'",\ |               jq -n \ | ||||||
|                      "target_commitish": "nightly",\ |                 --arg tag_name "$META_TAG" \ | ||||||
|                      "name": "'${META_TAG}'",\ |                 --arg target_commitish "nightly" \ | ||||||
|                      "body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start |                 --arg ci_url "${CI_URL:-N/A}" \ | ||||||
|               printf '","draft": false,"prerelease": true}' >> releasebody.json |                 --arg ls_notes "$AUTO_RELEASE_NOTES" \ | ||||||
|               paste -d'\\0' start releasebody.json > releasebody.json.done |                 --arg remote_notes "$(cat releasebody.json)" \ | ||||||
|  |                 '{ | ||||||
|  |                   "tag_name": $tag_name, | ||||||
|  |                   "target_commitish": $target_commitish, | ||||||
|  |                   "name": $tag_name, | ||||||
|  |                   "body": ("**CI Report:**\\n\\n" + $ci_url + "\\n\\n**LinuxServer Changes:**\\n\\n" + $ls_notes + "\\n\\n**Remote Changes:**\\n\\n" + $remote_notes), | ||||||
|  |                   "draft": false, | ||||||
|  |                   "prerelease": true                }' > releasebody.json.done | ||||||
|               curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done''' |               curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done''' | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -372,6 +372,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 | |||||||
|  |  | ||||||
| ## Versions | ## Versions | ||||||
|  |  | ||||||
|  | * **20.10.25:** - Add libjemalloc2 as runtime dep. | ||||||
| * **06.10.24:** - Fix fontconfig cache path. | * **06.10.24:** - Fix fontconfig cache path. | ||||||
| * **13.08.24:** - Rebase to Ubuntu Noble. | * **13.08.24:** - Rebase to Ubuntu Noble. | ||||||
| * **01.05.24:** - Increase verbosity of device permissions fixing. Use universal hardware acceleration blurb. | * **01.05.24:** - Increase verbosity of device permissions fixing. Use universal hardware acceleration blurb. | ||||||
|   | |||||||
| @@ -22,7 +22,7 @@ repo_vars: | |||||||
|   - CI_WEB='true' |   - CI_WEB='true' | ||||||
|   - CI_PORT='8096' |   - CI_PORT='8096' | ||||||
|   - CI_SSL='false' |   - CI_SSL='false' | ||||||
|   - CI_DELAY='120' |   - CI_DELAY='300' | ||||||
|   - CI_DOCKERENV='' |   - CI_DOCKERENV='' | ||||||
|   - CI_AUTH='' |   - CI_AUTH='' | ||||||
|   - CI_WEBPATH='' |   - CI_WEBPATH='' | ||||||
|   | |||||||
| @@ -131,6 +131,7 @@ init_diagram: | | |||||||
|   "jellyfin:nightly" <- Base Images |   "jellyfin:nightly" <- Base Images | ||||||
| # changelog | # changelog | ||||||
| changelogs: | changelogs: | ||||||
|  |   - {date: "20.10.25:", desc: "Add libjemalloc2 as runtime dep."} | ||||||
|   - {date: "06.10.24:", desc: "Fix fontconfig cache path."} |   - {date: "06.10.24:", desc: "Fix fontconfig cache path."} | ||||||
|   - {date: "13.08.24:", desc: "Rebase to Ubuntu Noble."} |   - {date: "13.08.24:", desc: "Rebase to Ubuntu Noble."} | ||||||
|   - {date: "01.05.24:", desc: "Increase verbosity of device permissions fixing. Use universal hardware acceleration blurb."} |   - {date: "01.05.24:", desc: "Increase verbosity of device permissions fixing. Use universal hardware acceleration blurb."} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user