chore: add optional shared registry image push - #44
Merged
Conversation
Adds a standalone reusable workflow that builds the service image and pushes it to the shared GCP project so the wanaware-operator can pull and run it. Triggered as a separate job from deployment.yaml so callers need no changes. The job is fully isolated from the deploy path: it runs on its own runner, only ever authenticates to the shared project, and is continue-on-error at both step and job level, so it cannot affect existing deployments. Activates only when the four GCP_*_SHARED secrets are set; otherwise it skips cleanly.
muhammad-tahir-nawaz
had a problem deploying
to
development
July 28, 2026 10:42 — with
GitHub Actions
Error
Greptile SummaryAdds an optional, isolated workflow for publishing service images to a shared GCP registry.
Confidence Score: 2/5The PR is not safe to merge until a failed primary deployment can no longer publish its rejected revision as the shared registry's latest image. The shared job still runs under Files Needing Attention: .github/workflows/deployment.yaml and .github/workflows/shared-registry-push.yaml
|
| Filename | Overview |
|---|---|
| .github/workflows/deployment.yaml | Adds optional shared-registry secrets and a post-deployment reusable-workflow job. |
| .github/workflows/shared-registry-push.yaml | Adds the reusable workflow that authenticates to the shared project, rebuilds the service image, pushes latest, and reports failures non-fatally. |
Reviews (3): Last reviewed commit: "chore: restore prod pin and surface shar..." | Re-trigger Greptile
muhammad-tahir-nawaz
had a problem deploying
to
development
July 28, 2026 10:58 — with
GitHub Actions
Error
Reverts the temporary feature-branch pin used for end-to-end testing. Adds a ::warning:: annotation when the shared push fails. The job is best-effort and stays green so it can never affect a deploy, which meant a failed push was previously only visible in the run summary.
muhammad-tahir-nawaz
had a problem deploying
to
development
July 28, 2026 11:25 — with
GitHub Actions
Error
maira-ayub
approved these changes
Jul 28, 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
Adds an optional push of each service image to the shared GCP project, so the operator being developed in
wanaware-operatorhas the images it needs to pull and run.This is an alternative to #43. Same goal, but structured so it is strictly additive and cannot affect any existing deployment.
.github/workflows/shared-registry-push.yaml— standalone reusable workflow. Authenticates to the shared project only, builds the image, pushes to the shared registry.deployment.yaml— one new job (push-to-shared-registry) that calls it, plus four new optional secret declarations. 48 insertions, 0 deletions — no existing line is changed or moved.Isolation, concretely:
continue-on-errorat both step and job level, so a failure here can never turn a deploy run red.Callers need no changes. The shared push activates purely by setting the four
GCP_*_SHAREDsecrets on a repo.It rebuilds from source rather than retagging the deploy job's image, because that image is only loaded into the deploy runner's local docker daemon; pulling it instead would mean authenticating to the WanAware registry from this job, which is exactly the coupling this design avoids. The build uses the same context, Dockerfile and build-args, so the image matches what
deployment.yamlships.Why
Required so the
wanaware-operatorhas permission to pull and run the images. Supersedes #43, which reordered the existing auth steps — that made the build run before any GCP auth, which would break builds using a private base image from GAR.QA Report
CI/workflow-only change with no user-facing API surface.
Integration Tests
Added
Edited
Dependencies
Four new optional GitHub Actions secrets, per repo that should publish to the shared registry:
GCP_SERVICE_ACCOUNT_SHAREDGCP_WORKLOAD_IDENTITY_PROVIDER_SHAREDGCP_PROJECT_SHAREDGCP_REGISTRY_SHAREDAll optional. Without them the shared push is skipped and behaviour is unchanged.
Notes for Reviewer
The new job pins the called workflow with
@prod, matching the existing convention forWanAware/.githubreferences. That means the shared push only becomes live once this is merged toprod.