pathfinder2/.github/workflows/build-and-push.yml

89 lines
2.2 KiB
YAML

name: Build and push image from ref
on:
workflow_call:
inputs:
ref:
description: "A ref from this repository, CirclesUBI/pathfinder2"
required: true
type: string
image:
description: "The desired name of the image to build"
default: 'pathfinder2'
required: false
type: string
workflow_dispatch:
inputs:
ref:
description: "A ref from this repository, CirclesUBI/pathfinder2"
required: true
type: string
image:
description: "The desired name of the image to build"
default: 'pathfinder2'
required: false
type: string
jobs:
build-and-push-image:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
steps:
-
name: Checkout repository
uses: actions/checkout@v3
with:
ref: ${{ inputs.ref }}
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: |
${{ vars.GC_REGISTRY }}/${{ vars.GC_PROJECT_ID }}/${{ inputs.image }}
labels: |
org.opencontainers.image.title=${{ inputs.image }}
org.opencontainers.image.vendor=CirclesUBI
tags: |
type=raw,value=latest,enable={{is_default_branch}}
type=semver,pattern={{version}}
{{ tag }}
{{ base_ref }}
{{ branch }}
type=sha,prefix={{branch}}-
{{ sha }}
-
name: Authenticate to Google Cloud
id: auth
uses: google-github-actions/auth@v1
with:
workload_identity_provider: "${{ vars.GC_WLI_PROVIDER }}"
service_account: "${{ vars.GC_WLI_SA }}"
token_format: 'access_token'
-
name: Login to Container Registry
uses: docker/login-action@v2
with:
registry: ${{ vars.GC_REGISTRY }}
username: 'oauth2accesstoken'
password: '${{ steps.auth.outputs.access_token }}'
- name: Build and push Docker image
uses: docker/build-push-action@v3
with:
push: true
tags: ${{ steps.meta.outputs.tags }}