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
 |