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 }}