Add reusable end-to-end deploy workflows (dev/staging/prod) - #91
Merged
Merged
Conversation
Christdej
force-pushed
the
feat/reusable-deploy-workflows
branch
2 times, most recently
from
August 17, 2026 11:20
bf791f0 to
0fc4c81
Compare
This was referenced Aug 17, 2026
Christdej
force-pushed
the
feat/reusable-deploy-workflows
branch
from
August 17, 2026 11:35
0fc4c81 to
70cafd7
Compare
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 three reusable workflows that compose the existing armada building blocks (
build_and_publish_docker_image_to_container_registry.yml+update_kubernetes_deployment.yml) into full deploy pipelines for services deploying via kustomize to an equinor infrastructure repository.deploy_to_development.yml– on push to main: publishdev.<short-sha>tag and update the development kustomize overlay.deploy_to_staging.yml– on release publish: publish<tag>+:latestand update the staging overlay.promote_to_production.yml– manual dispatch: read the tag currently deployed to staging from the infrastructure repo, copy that image (docker buildx imagetools create) from staging to production registry (both:tagand:latest), and update the production overlay.Motivation
Service repositories re-implement this orchestration today. Each of the eight
sara-*repos contains near-identical copies ofdeploy_to_development.yml,deploy_to_staging.yml,promote_to_production.yaml, and (for some) a localpublish_component.ymlduplicating armada'sbuild_and_publish_docker_image_to_container_registry.yml. That's a lot of duplicated YAML, and any change to the pipeline (registry rename, new step, new metadata) has to fan out to N repos.After this PR, a consumer's dev deploy becomes:
```yaml
jobs:
deploy:
uses: equinor/armada/.github/workflows/deploy_to_development.yml@main
with:
registry: roboticsdevacr.azurecr.io
image_name: robotics/sara-anonymizer
infrastructure_repository: equinor/analytics-infrastructure
secrets:
registry_username: ${{ secrets.ROBOTICS_ROBOTICSDEVACR_USERNAME }}
registry_password: ${{ secrets.ROBOTICS_ROBOTICSDEVACR_PASSWORD }}
deploy_key: ${{ secrets.ANALYTICS_INFRASTRUCTURE_DEPLOY_KEY }}
```
Companion PRs against the
sara-*repos will adopt these workflows.Behavior
Matches the current sara pattern (post recent consolidation to a single `roboticsdevacr/roboticsstagingacr/roboticsprodacr` registry per environment):
Production tag lookup uses `grep newName: /
` to find the image block, matching how `update_kubernetes_deployment.yml` already resolves the image line (safer than the current per-repo `cut -d: -f2` approach that assumes a single reference to the substring in the file).
Notes