mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-11-03 23:14:13 +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
 |