ci: also push web app image to GCP Artifact Registry - #5
Merged
Conversation
Authenticate to GCP via workload identity federation and add the Artifact Registry path as a second image in the Docker metadata step, so a single build is pushed to both ghcr.io and europe-west2-docker.pkg.dev. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Updates the web-app Docker image publishing workflow to push the same multi-arch build to both GitHub Container Registry (ghcr.io) and Google Cloud Artifact Registry, using GitHub OIDC workload identity federation for GCP authentication.
Changes:
- Adds GCP Artifact Registry image coordinates via new workflow
envvariables. - Enables OIDC (
id-token: write) and authenticates to Google Cloud usinggoogle-github-actions/auth. - Logs in to Artifact Registry and configures
docker/metadata-actionto emit tags for both registries so a single build is pushed to both.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Alex (ahornsby-acquired)
approved these changes
Jul 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Pushes the web app image to the GCP Artifact Registry as well as ghcr.io, so deployments can pull from the same registry as every other Acquired service instead of relying on images being copied across by hand.
WIF_PROVIDER_NAMEandSERVICE_ACCOUNT_EMAILsecrets.workflow_dispatchversion input, image naming and multi-arch behaviour unchanged.Jira: A2A-279
Details for AI reviewers
Files
.github/workflows/open-banking-connector-web-app-docker-image.yml— 21 lines added, 1 changed.Changes
enventries,GCP_REGISTRYandGCP_IMAGE_NAME, pointing ateurope-west2-docker.pkg.dev/prj-c-prd-infra-cicd-iytq/ar-c-prd-euwe2-docker/open-banking-connector-web-app.id-token: writeadded to the job permissions, required for workload identity federation.google-github-actions/authstep requestingtoken_format: access_token, followed by adocker/login-actionagainst Artifact Registry usingoauth2accesstoken.imagesinput becomes a two-line list, sobuild-push-actionreceives both tags and pushes a single build to both registries.Naming
The Artifact Registry path uses
open-banking-connector-web-app, matching both the ghcr.io image name and the existing repository in Artifact Registry that already holds18.2.0. It deliberately does not use${{ github.event.repository.name }}the way payment-service does, since that would resolve toopen-banking-connectorand start a separate repository.Why not the shared template
acquired-pci/dotnet-github-action-templateswas considered. It derives the version fromsrc/*/*.csprojvia xmlstarlet, and this repository has five projects carrying a<Version>, so that step returns multiple values. It also pushes unconditionally to Docker Hub and runs Docker Scout, requiring secrets this repository does not have. Extending the existing workflow was the smaller change.Dependencies
Requires
acquired-pci/gcp-projectsPR #254 to be applied, which provisions the service account, the WIF binding scoped to this repository, the three Actions secrets, androles/artifactregistry.adminon the registry. The auth step fails without it.Fork divergence
This is the fork's first content change on top of upstream, and the file is upstream-owned. Future syncs may conflict here. Upstream rarely touches this workflow, so the risk was judged acceptable against the alternative of a separate mirror workflow requiring a second manual step per release.
Verification
Validated with actionlint 1.7 (via
rhysd/actionlintDocker image), clean. Not yet executed, since it cannot authenticate until #254 is applied.Note on
auth@v2The shared template pins
google-github-actions/auth@v1. This uses@v2instead, as v1 is deprecated and pinned to an EOL Node runtime.