mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 07:03:55 +00:00 
			
		
		
		
	Move from docker manifest command to buildx with platforms (#4320)
This commit is contained in:
		
							
								
								
									
										88
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										88
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							| @@ -30,6 +30,10 @@ jobs: | ||||
|             TAG=$(cat esphome/const.py | sed -n -E "s/^__version__\s+=\s+\"(.+)\"$/\1/p") | ||||
|             today="$(date --utc '+%Y%m%d')" | ||||
|             TAG="${TAG}${today}" | ||||
|             BRANCH=${GITHUB_REF#refs/heads/} | ||||
|             if [[ "$BRANCH" != "dev" ]]; then | ||||
|               TAG="${TAG}-${BRANCH}" | ||||
|             fi | ||||
|           fi | ||||
|           echo "tag=${TAG}" >> $GITHUB_OUTPUT | ||||
|         # yamllint enable rule:line-length | ||||
| @@ -57,7 +61,7 @@ jobs: | ||||
|         run: twine upload dist/* | ||||
|  | ||||
|   deploy-docker: | ||||
|     name: Build and publish docker containers | ||||
|     name: Build and publish ESPHome ${{ matrix.image.title}} | ||||
|     if: github.repository == 'esphome/esphome' | ||||
|     permissions: | ||||
|       contents: read | ||||
| @@ -66,8 +70,19 @@ jobs: | ||||
|     needs: [init] | ||||
|     strategy: | ||||
|       matrix: | ||||
|         arch: [amd64, armv7, aarch64] | ||||
|         build_type: ["ha-addon", "docker", "lint"] | ||||
|         image: | ||||
|           - title: "ha-addon" | ||||
|             suffix: "hassio" | ||||
|             target: "hassio" | ||||
|             baseimg: "hassio" | ||||
|           - title: "docker" | ||||
|             suffix: "" | ||||
|             target: "docker" | ||||
|             baseimg: "docker" | ||||
|           - title: "lint" | ||||
|             suffix: "lint" | ||||
|             target: "lint" | ||||
|             baseimg: "docker" | ||||
|     steps: | ||||
|       - uses: actions/checkout@v3 | ||||
|       - name: Set up Python | ||||
| @@ -92,54 +107,29 @@ jobs: | ||||
|           username: ${{ github.actor }} | ||||
|           password: ${{ secrets.GITHUB_TOKEN }} | ||||
|  | ||||
|       - name: Generate short tags | ||||
|         id: tags | ||||
|         run: | | ||||
|           docker/generate_tags.py \ | ||||
|             --tag "${{ needs.init.outputs.tag }}" \ | ||||
|             --suffix "${{ matrix.image.suffix }}" | ||||
|  | ||||
|       - name: Build and push | ||||
|         run: | | ||||
|           docker/build.py \ | ||||
|             --tag "${{ needs.init.outputs.tag }}" \ | ||||
|             --arch "${{ matrix.arch }}" \ | ||||
|             --build-type "${{ matrix.build_type }}" \ | ||||
|             build \ | ||||
|             --push | ||||
|  | ||||
|   deploy-docker-manifest: | ||||
|     if: github.repository == 'esphome/esphome' | ||||
|     permissions: | ||||
|       contents: read | ||||
|       packages: write | ||||
|     runs-on: ubuntu-latest | ||||
|     needs: [init, deploy-docker] | ||||
|     strategy: | ||||
|       matrix: | ||||
|         build_type: ["ha-addon", "docker", "lint"] | ||||
|     steps: | ||||
|       - uses: actions/checkout@v3 | ||||
|       - name: Set up Python | ||||
|         uses: actions/setup-python@v4 | ||||
|         uses: docker/build-push-action@v3 | ||||
|         with: | ||||
|           python-version: "3.9" | ||||
|       - name: Enable experimental manifest support | ||||
|         run: | | ||||
|           mkdir -p ~/.docker | ||||
|           echo "{\"experimental\": \"enabled\"}" > ~/.docker/config.json | ||||
|  | ||||
|       - name: Log in to docker hub | ||||
|         uses: docker/login-action@v2 | ||||
|         with: | ||||
|           username: ${{ secrets.DOCKER_USER }} | ||||
|           password: ${{ secrets.DOCKER_PASSWORD }} | ||||
|       - name: Log in to the GitHub container registry | ||||
|         uses: docker/login-action@v2 | ||||
|         with: | ||||
|           registry: ghcr.io | ||||
|           username: ${{ github.actor }} | ||||
|           password: ${{ secrets.GITHUB_TOKEN }} | ||||
|  | ||||
|       - name: Run manifest | ||||
|         run: | | ||||
|           docker/build.py \ | ||||
|             --tag "${{ needs.init.outputs.tag }}" \ | ||||
|             --build-type "${{ matrix.build_type }}" \ | ||||
|             manifest | ||||
|           context: . | ||||
|           file: ./docker/Dockerfile | ||||
|           platforms: linux/amd64,linux/arm/v7,linux/arm64 | ||||
|           target: ${{ matrix.image.target }} | ||||
|           push: true | ||||
|           # yamllint disable rule:line-length | ||||
|           cache-from: type=registry,ref=ghcr.io/${{ steps.tags.output.image }}:cache-${{ steps.tags.outputs.channel }} | ||||
|           cache-to: type=registry,ref=ghcr.io/${{ steps.tags.output.image }}:cache-${{ steps.tags.outputs.channel }},mode=max | ||||
|           # yamllint enable rule:line-length | ||||
|           tags: ${{ steps.tags.outputs.tags }} | ||||
|           build-args: | | ||||
|             BASEIMGTYPE=${{ matrix.image.baseimg }} | ||||
|             BUILD_VERSION=${{ needs.init.outputs.tag }} | ||||
|  | ||||
|   deploy-ha-addon-repo: | ||||
|     if: github.repository == 'esphome/esphome' && github.event_name == 'release' | ||||
|   | ||||
		Reference in New Issue
	
	Block a user