![dependabot[bot]](/assets/img/avatar_default.png) 79e779b339
			
		
	
	79e779b339
	
	
	
		
			
			Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3.5.0 to 3.6.0. - [Release notes](https://github.com/docker/setup-qemu-action/releases) - [Commits](https://github.com/docker/setup-qemu-action/compare/v3.5.0...v3.6.0) --- updated-dependencies: - dependency-name: docker/setup-qemu-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
		
			
				
	
	
		
			97 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| # Re-usable workflow for a single-architecture build
 | |
| name: Single-arch Container build
 | |
| 
 | |
| on:
 | |
|   workflow_call:
 | |
|     inputs:
 | |
|       image_name:
 | |
|         required: true
 | |
|         type: string
 | |
|       image_arch:
 | |
|         required: true
 | |
|         type: string
 | |
|       runs-on:
 | |
|         required: true
 | |
|         type: string
 | |
|       registry_dockerhub:
 | |
|         default: false
 | |
|         type: boolean
 | |
|       registry_ghcr:
 | |
|         default: false
 | |
|         type: boolean
 | |
|       release:
 | |
|         default: false
 | |
|         type: boolean
 | |
|     outputs:
 | |
|       image-digest:
 | |
|         value: ${{ jobs.build.outputs.image-digest }}
 | |
| 
 | |
| jobs:
 | |
|   build:
 | |
|     name: Build ${{ inputs.image_arch }}
 | |
|     runs-on: ${{ inputs.runs-on }}
 | |
|     outputs:
 | |
|       image-digest: ${{ steps.push.outputs.digest }}
 | |
|     permissions:
 | |
|       # Needed to upload container images to ghcr.io
 | |
|       packages: write
 | |
|       # Needed for attestation
 | |
|       id-token: write
 | |
|       attestations: write
 | |
|     steps:
 | |
|       - uses: actions/checkout@v4
 | |
|       - uses: docker/setup-qemu-action@v3.6.0
 | |
|       - uses: docker/setup-buildx-action@v3
 | |
|       - name: prepare variables
 | |
|         uses: ./.github/actions/docker-push-variables
 | |
|         id: ev
 | |
|         env:
 | |
|           DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
 | |
|         with:
 | |
|           image-name: ${{ inputs.image_name }}
 | |
|           image-arch: ${{ inputs.image_arch }}
 | |
|           release: ${{ inputs.release }}
 | |
|       - name: Login to Docker Hub
 | |
|         if: ${{ inputs.registry_dockerhub }}
 | |
|         uses: docker/login-action@v3
 | |
|         with:
 | |
|           username: ${{ secrets.DOCKER_USERNAME }}
 | |
|           password: ${{ secrets.DOCKER_PASSWORD }}
 | |
|       - name: Login to GitHub Container Registry
 | |
|         if: ${{ inputs.registry_ghcr }}
 | |
|         uses: docker/login-action@v3
 | |
|         with:
 | |
|           registry: ghcr.io
 | |
|           username: ${{ github.repository_owner }}
 | |
|           password: ${{ secrets.GITHUB_TOKEN }}
 | |
|       - name: make empty clients
 | |
|         if: ${{ inputs.release }}
 | |
|         run: |
 | |
|           mkdir -p ./gen-ts-api
 | |
|           mkdir -p ./gen-go-api
 | |
|       - name: generate ts client
 | |
|         if: ${{ !inputs.release }}
 | |
|         run: make gen-client-ts
 | |
|       - name: Build Docker Image
 | |
|         uses: docker/build-push-action@v6
 | |
|         id: push
 | |
|         with:
 | |
|           context: .
 | |
|           push: ${{ steps.ev.outputs.shouldPush == 'true' }}
 | |
|           secrets: |
 | |
|             GEOIPUPDATE_ACCOUNT_ID=${{ secrets.GEOIPUPDATE_ACCOUNT_ID }}
 | |
|             GEOIPUPDATE_LICENSE_KEY=${{ secrets.GEOIPUPDATE_LICENSE_KEY }}
 | |
|           build-args: |
 | |
|             ${{ steps.ev.outputs.imageBuildArgs }}
 | |
|           tags: ${{ steps.ev.outputs.imageTags }}
 | |
|           platforms: linux/${{ inputs.image_arch }}
 | |
|           cache-from: type=registry,ref=${{ steps.ev.outputs.attestImageNames }}:buildcache-${{ inputs.image_arch }}
 | |
|           cache-to: ${{ steps.ev.outputs.cacheTo }}
 | |
|       - uses: actions/attest-build-provenance@v2
 | |
|         id: attest
 | |
|         if: ${{ steps.ev.outputs.shouldPush == 'true' }}
 | |
|         with:
 | |
|           subject-name: ${{ steps.ev.outputs.attestImageNames }}
 | |
|           subject-digest: ${{ steps.push.outputs.digest }}
 | |
|           push-to-registry: true
 |