mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-10-23 09:44:51 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			88 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: Publish Docker image (develop)
 | |
| 
 | |
| on:
 | |
|   push:
 | |
|     branches:
 | |
|       - develop
 | |
|   workflow_dispatch:
 | |
| 
 | |
| env:
 | |
|   REGISTRY_IMAGE: misskey/misskey
 | |
| 
 | |
| jobs:
 | |
|   # see https://docs.docker.com/build/ci/github-actions/multi-platform/#distribute-build-across-multiple-runners
 | |
|   build:
 | |
|     name: Build
 | |
|     runs-on: ubuntu-latest
 | |
|     strategy:
 | |
|       fail-fast: false
 | |
|       matrix:
 | |
|         platform:
 | |
|           - linux/amd64
 | |
|           - linux/arm64
 | |
|     if: github.repository == 'misskey-dev/misskey'
 | |
|     steps:
 | |
|       - name: Prepare
 | |
|         run: |
 | |
|           platform=${{ matrix.platform }}
 | |
|           echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
 | |
|       - name: Check out the repo
 | |
|         uses: actions/checkout@v4.2.2
 | |
|       - name: Set up Docker Buildx
 | |
|         uses: docker/setup-buildx-action@v3
 | |
|       - name: Log in to Docker Hub
 | |
|         uses: docker/login-action@v3
 | |
|         with:
 | |
|           username: ${{ secrets.DOCKER_USERNAME }}
 | |
|           password: ${{ secrets.DOCKER_PASSWORD }}
 | |
|       - name: Build and push by digest
 | |
|         id: build
 | |
|         uses: docker/build-push-action@v6
 | |
|         with:
 | |
|           context: .
 | |
|           push: true
 | |
|           platforms: ${{ matrix.platform }}
 | |
|           provenance: false
 | |
|           labels: develop
 | |
|           cache-from: type=gha
 | |
|           cache-to: type=gha,mode=max
 | |
|           outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true
 | |
|       - name: Export digest
 | |
|         run: |
 | |
|           mkdir -p /tmp/digests
 | |
|           digest="${{ steps.build.outputs.digest }}"
 | |
|           touch "/tmp/digests/${digest#sha256:}"
 | |
|       - name: Upload digest
 | |
|         uses: actions/upload-artifact@v4
 | |
|         with:
 | |
|           name: digests-${{ env.PLATFORM_PAIR }}
 | |
|           path: /tmp/digests/*
 | |
|           if-no-files-found: error
 | |
|           retention-days: 1
 | |
| 
 | |
|   merge:
 | |
|     runs-on: ubuntu-latest
 | |
|     needs:
 | |
|       - build
 | |
|     steps:
 | |
|       - name: Download digests
 | |
|         uses: actions/download-artifact@v4
 | |
|         with:
 | |
|           path: /tmp/digests
 | |
|           pattern: digests-*
 | |
|           merge-multiple: true
 | |
|       - name: Set up Docker Buildx
 | |
|         uses: docker/setup-buildx-action@v3
 | |
|       - name: Login to Docker Hub
 | |
|         uses: docker/login-action@v3
 | |
|         with:
 | |
|           username: ${{ secrets.DOCKER_USERNAME }}
 | |
|           password: ${{ secrets.DOCKER_PASSWORD }}
 | |
|       - name: Create manifest list and push
 | |
|         working-directory: /tmp/digests
 | |
|         run: |
 | |
|           docker buildx imagetools create --tag ${{ env.REGISTRY_IMAGE }}:develop \
 | |
|             $(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)
 | |
|       - name: Inspect image
 | |
|         run: |
 | |
|           docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:develop
 |