84 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
| name: Images
 | |
| 
 | |
| on:
 | |
|   pull_request:
 | |
|     branches: [ main ]
 | |
|   push:
 | |
|     branches:
 | |
|       - main
 | |
|       - "image/**"
 | |
|       - "*image"
 | |
|       - "image*"
 | |
|     tags:
 | |
|       - 'v*'
 | |
|     paths-ignore:
 | |
|       - .github/workflows/ci.yml
 | |
|       - .github/workflows/lock.yml
 | |
|       - ".github/ISSUE_TEMPLATE/**"
 | |
|       - "docs/**"
 | |
|       - "hack/**"
 | |
|       - "**.md"
 | |
|       - ".gitignore"
 | |
|       - "Makefile"
 | |
| 
 | |
| jobs:
 | |
|   build:
 | |
|     name: Build
 | |
|     runs-on: ubuntu-latest
 | |
|     permissions:
 | |
|       contents: read
 | |
|       packages: write
 | |
|     strategy:
 | |
|       matrix:
 | |
|         image:
 | |
|           - dockerfile: Dockerfile
 | |
|             suffix: ""
 | |
|           - dockerfile: Dockerfile.debian-stable-slim
 | |
|             suffix: "-debian-stable-slim"
 | |
|           - dockerfile: Dockerfile.ubuntu
 | |
|             suffix: "-ubuntu"
 | |
|     steps:
 | |
|       - name: Checkout
 | |
|         uses: actions/checkout@v5
 | |
|         with:
 | |
|           fetch-depth: 0
 | |
| 
 | |
|       - name: Set up QEMU
 | |
|         uses: docker/setup-qemu-action@v3
 | |
| 
 | |
|       - name: Set up Docker Buildx
 | |
|         uses: docker/setup-buildx-action@v3
 | |
|         with:
 | |
|           version: latest
 | |
| 
 | |
|       - name: Docker meta
 | |
|         id: meta
 | |
|         uses: docker/metadata-action@v5
 | |
|         with:
 | |
|           images: ghcr.io/${{ github.repository }}${{ matrix.image.suffix }}
 | |
|           flavor: latest=false
 | |
|           tags: |
 | |
|             type=raw,value=canary,enable=${{ github.ref == format('refs/heads/{0}', 'main') }}
 | |
|             type=ref,event=pr
 | |
|             type=semver,pattern={{raw}}
 | |
|             type=raw,value=latest,enable=${{ startsWith(github.ref, 'refs/tags/') }}            
 | |
| 
 | |
|       - name: Login to GitHub Container Registry
 | |
|         uses: docker/login-action@v3
 | |
|         with:
 | |
|           registry: ghcr.io
 | |
|           username: ${{ github.actor }}
 | |
|           password: ${{ secrets.GITHUB_TOKEN }}
 | |
| 
 | |
|       - name: Build / Push
 | |
|         uses: docker/build-push-action@v6
 | |
|         with:
 | |
|           context: .
 | |
|           file: ${{ matrix.image.dockerfile }}
 | |
|           platforms: linux/amd64,linux/arm64
 | |
|           push: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/') }}
 | |
|           tags: ${{ steps.meta.outputs.tags }}
 | |
|           labels: ${{ steps.meta.outputs.labels }}
 | |
|           cache-from: type=gha
 | |
|           cache-to: type=gha,mode=max
 |