mirror of
				https://github.com/linuxserver/docker-heimdall.git
				synced 2025-10-31 04:57:39 +09:00 
			
		
		
		
	Bot Updating Templated Files
This commit is contained in:
		
							
								
								
									
										28
									
								
								Jenkinsfile
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								Jenkinsfile
									
									
									
									
										vendored
									
									
								
							| @@ -38,7 +38,7 @@ pipeline { | ||||
|         script{ | ||||
|           env.EXIT_STATUS = '' | ||||
|           env.LS_RELEASE = sh( | ||||
|             script: '''curl -s https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases/latest | jq -r '. | .tag_name' ''', | ||||
|             script: '''docker run --rm alexeiled/skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':latest 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''', | ||||
|             returnStdout: true).trim() | ||||
|           env.LS_RELEASE_NOTES = sh( | ||||
|             script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''', | ||||
| @@ -240,7 +240,7 @@ pipeline { | ||||
|               fi | ||||
|               mkdir -p ${TEMPDIR}/gitbook | ||||
|               git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/gitbook/docker-documentation | ||||
|               if [ "${BRANCH_NAME}" = "master" ] && [ ! -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}/${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" ]; then | ||||
|               if [[ "${BRANCH_NAME}" == "master" ]] && [[ (! -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}/${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then | ||||
|                 cp ${TEMPDIR}/${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/ | ||||
|                 cd ${TEMPDIR}/gitbook/docker-documentation/ | ||||
|                 git add images/docker-${CONTAINER_NAME}.md | ||||
| @@ -315,15 +315,13 @@ pipeline { | ||||
|               sh '''#! /bin/bash | ||||
|                  echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin | ||||
|                  ''' | ||||
|               sh "curl https://lsio-ci.ams3.digitaloceanspaces.com/qemu-arm-static -o qemu-arm-static" | ||||
|               sh "chmod +x qemu-*" | ||||
|               sh "docker build --no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} \ | ||||
|                            --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." | ||||
|               sh "docker tag ${IMAGE}:arm32v7-${META_TAG} lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}" | ||||
|               sh "docker push lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}" | ||||
|               sh '''docker rmi \ | ||||
|                     ${IMAGE}:arm32v7-${META_TAG} \ | ||||
|                     lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ''' | ||||
|                     lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} || :''' | ||||
|             } | ||||
|           } | ||||
|         } | ||||
| @@ -344,15 +342,13 @@ pipeline { | ||||
|               sh '''#! /bin/bash | ||||
|                  echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin | ||||
|                  ''' | ||||
|               sh "curl https://lsio-ci.ams3.digitaloceanspaces.com/qemu-aarch64-static -o qemu-aarch64-static" | ||||
|               sh "chmod +x qemu-*" | ||||
|               sh "docker build --no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \ | ||||
|                            --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." | ||||
|               sh "docker tag ${IMAGE}:arm64v8-${META_TAG} lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}" | ||||
|               sh "docker push lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}" | ||||
|               sh '''docker rmi \ | ||||
|                     ${IMAGE}:arm64v8-${META_TAG} \ | ||||
|                     lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ''' | ||||
|                     lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :''' | ||||
|             } | ||||
|           } | ||||
|         } | ||||
| @@ -516,7 +512,7 @@ pipeline { | ||||
|           sh "docker push ${IMAGE}:${META_TAG}" | ||||
|           sh '''docker rmi \ | ||||
|                 ${IMAGE}:${META_TAG} \ | ||||
|                 ${IMAGE}:latest ''' | ||||
|                 ${IMAGE}:latest || :''' | ||||
|                  | ||||
|         } | ||||
|       } | ||||
| @@ -573,7 +569,7 @@ pipeline { | ||||
|                 ${IMAGE}:arm64v8-${META_TAG} \ | ||||
|                 ${IMAGE}:arm64v8-latest \ | ||||
|                 lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \ | ||||
|                 lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ''' | ||||
|                 lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :''' | ||||
|         } | ||||
|       } | ||||
|     } | ||||
| @@ -582,25 +578,25 @@ pipeline { | ||||
|       when { | ||||
|         branch "master" | ||||
|         expression { | ||||
|           env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-ls' + env.LS_TAG_NUMBER | ||||
|           env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER | ||||
|         } | ||||
|         environment name: 'CHANGE_ID', value: '' | ||||
|         environment name: 'EXIT_STATUS', value: '' | ||||
|       } | ||||
|       steps { | ||||
|         echo "Pushing New tag for current commit ${EXT_RELEASE_CLEAN}-pkg-${PACKAGE_TAG}-ls${LS_TAG_NUMBER}" | ||||
|         echo "Pushing New tag for current commit ${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}" | ||||
|         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}'-pkg-'${PACKAGE_TAG}'-ls'${LS_TAG_NUMBER}'",\ | ||||
|         -d '{"tag":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\ | ||||
|              "object": "'${COMMIT_SHA}'",\ | ||||
|              "message": "Tagging Release '${EXT_RELEASE_CLEAN}'-pkg-'${PACKAGE_TAG}'-ls'${LS_TAG_NUMBER}' to master",\ | ||||
|              "message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\ | ||||
|              "type": "commit",\ | ||||
|              "tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' ''' | ||||
|         echo "Pushing New release for Tag" | ||||
|         sh '''#! /bin/bash | ||||
|               curl -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq '. |.body' | sed 's:^.\\(.*\\).$:\\1:' > releasebody.json | ||||
|               echo '{"tag_name":"'${EXT_RELEASE_CLEAN}'-pkg-'${PACKAGE_TAG}'-ls'${LS_TAG_NUMBER}'",\ | ||||
|               echo '{"tag_name":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\ | ||||
|                      "target_commitish": "master",\ | ||||
|                      "name": "'${EXT_RELEASE_CLEAN}'-pkg-'${PACKAGE_TAG}'-ls'${LS_TAG_NUMBER}'",\ | ||||
|                      "name": "'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\ | ||||
|                      "body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n**'${EXT_REPO}' Changes:**\\n\\n' > start | ||||
|               printf '","draft": false,"prerelease": false}' >> releasebody.json | ||||
|               paste -d'\\0' start releasebody.json > releasebody.json.done | ||||
|   | ||||
							
								
								
									
										38
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										38
									
								
								README.md
									
									
									
									
									
								
							| @@ -156,15 +156,6 @@ Below are the instructions for updating containers: | ||||
| * Start the new container: `docker start heimdall` | ||||
| * You can also remove the old dangling images: `docker image prune` | ||||
|  | ||||
| ### Via Taisun auto-updater (especially useful if you don't remember the original parameters) | ||||
| * Pull the latest image at its tag and replace it with the same env variables in one shot: | ||||
|   ``` | ||||
|   docker run --rm \ | ||||
|   -v /var/run/docker.sock:/var/run/docker.sock taisun/updater \ | ||||
|   --oneshot heimdall | ||||
|   ``` | ||||
| * You can also remove the old dangling images: `docker image prune` | ||||
|  | ||||
| ### Via Docker Compose | ||||
| * Update all images: `docker-compose pull` | ||||
|   * or update a single image: `docker-compose pull heimdall` | ||||
| @@ -172,6 +163,35 @@ Below are the instructions for updating containers: | ||||
|   * or update a single container: `docker-compose up -d heimdall` | ||||
| * You can also remove the old dangling images: `docker image prune` | ||||
|  | ||||
| ### Via Watchtower auto-updater (especially useful if you don't remember the original parameters) | ||||
| * Pull the latest image at its tag and replace it with the same env variables in one run: | ||||
|   ``` | ||||
|   docker run --rm \ | ||||
|   -v /var/run/docker.sock:/var/run/docker.sock \ | ||||
|   containrrr/watchtower \ | ||||
|   --run-once heimdall | ||||
|   ``` | ||||
| * You can also remove the old dangling images: `docker image prune` | ||||
|  | ||||
| ## Building locally | ||||
|  | ||||
| If you want to make local modifications to these images for development purposes or just to customize the logic:  | ||||
| ``` | ||||
| git clone https://github.com/linuxserver/docker-heimdall.git | ||||
| cd docker-heimdall | ||||
| docker build \ | ||||
|   --no-cache \ | ||||
|   --pull \ | ||||
|   -t linuxserver/heimdall:latest . | ||||
| ``` | ||||
|  | ||||
| The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static` | ||||
| ``` | ||||
| docker run --rm --privileged multiarch/qemu-user-static:register --reset | ||||
| ``` | ||||
|  | ||||
| Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`. | ||||
|  | ||||
| ## Versions | ||||
|  | ||||
| * **01.04.19:** - Fix permission detect logic. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user