feat(ci): isolate Azure flavor builds and standardize CST test tags#3060
Merged
Conversation
Move Azure CLI installation and validation out of the base Dockerfile and into Dockerfile.azure so non-Azure flavors stay clean and only Azure-enabled images pull the Azure stack. Align the image set with the updated Azure CLI base by bumping Alpine to 3.24.1, refreshing Alpine package pins, and updating structure tests to assert the new Alpine release and Azure version where applicable. Standardize CI candidate image tagging on the shared suffix format (<tag>-test) instead of the previous prefix-based test tags. Update the Taskfiles and PR/weekly workflows to build, pull, inspect, and run container-structure-tests against the suffix-tagged images consistently. Expand the PR and dependency-update workflow matrices to cover all supported terragrunt flavors, and make every Azure-aware workflow resolve AZ_VERSION from Dockerfile.azure so release and validation paths use the same source of truth. This keeps the plain/slim/AWS/GCP images free of Azure dependencies, makes the Azure variants explicit, and removes the CST tag mismatch that was breaking reusable workflow runs.
Update docker-terragrunt to the current managed dependency set across Terraform, OpenTofu, Terragrunt, GCP CLI, sops, Alpine package pins, and selected Python requirements. Align the cron and Dependabot schedules with the org policy by moving weekly dependency scans to Monday morning and Dependabot updates to Wednesday morning. Make dependency:update run Alpine updates first, then package and tool updates, and extend it to manage pip requirement pins as well. Use the published docker-azure-cli release tag as the Azure source of truth so docker-terragrunt only targets Azure versions that are actually available as a base image. Normalize container-structure-test expectations to exact templated versions, update the documented release tags, and remove the redundant Azure CLI reinstall from Dockerfile.azure so Azure variants reuse the docker-azure-cli base image instead of rebuilding that layer on every image build.
ChristophShyper
approved these changes
Jul 7, 2026
Signed-off-by: Krzysztof Szyper <45788587+ChristophShyper@users.noreply.github.com>
ChristophShyper
approved these changes
Jul 7, 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.
📝 Brief description
fix(ci): isolate Azure flavor builds and standardize CST test tags
fix: pass AZ_VERSION in proper order
fix: make default alpine packages install
fix: refresh docker-terragrunt dependencies and test matrix
Merge branch 'master' into dependency/alpine-3-24-1
chore: small improvements and cleanup
💻 Commits
b4280fa - ChristophShyper - 2026-07-07 21:12:46
| chore: small improvements and cleanup
|
fca4534 - Krzysztof Szyper - 2026-07-07 21:11:53
| Merge branch 'master' into dependency/alpine-3-24-1
| Signed-off-by: Krzysztof Szyper 45788587+ChristophShyper@users.noreply.github.com
2ebd812 - ChristophShyper - 2026-07-07 18:38:41
| fix: refresh docker-terragrunt dependencies and test matrix
| Update docker-terragrunt to the current managed dependency set across
| Terraform, OpenTofu, Terragrunt, GCP CLI, sops, Alpine package pins,
| and selected Python requirements.
|
| Align the cron and Dependabot schedules with the org policy by moving
| weekly dependency scans to Monday morning and Dependabot updates to
| Wednesday morning.
|
| Make dependency:update run Alpine updates first, then package and tool
| updates, and extend it to manage pip requirement pins as well. Use the
| published docker-azure-cli release tag as the Azure source of truth so
| docker-terragrunt only targets Azure versions that are actually
| available as a base image.
|
| Normalize container-structure-test expectations to exact templated
| versions, update the documented release tags, and remove the redundant
| Azure CLI reinstall from Dockerfile.azure so Azure variants reuse the
| docker-azure-cli base image instead of rebuilding that layer on every
| image build.
|
a89ba6c - ChristophShyper - 2026-06-24 23:22:19
| fix: make default alpine packages install
|
cd05443 - ChristophShyper - 2026-06-24 23:09:44
| fix: pass AZ_VERSION in proper order
|
c29fc07 - ChristophShyper - 2026-06-24 22:00:56
fix(ci): isolate Azure flavor builds and standardize CST test tags
Move Azure CLI installation and validation out of the base Dockerfile and
into Dockerfile.azure so non-Azure flavors stay clean and only Azure-enabled
images pull the Azure stack.
Align the image set with the updated Azure CLI base by bumping Alpine to
3.24.1, refreshing Alpine package pins, and updating structure tests to
assert the new Alpine release and Azure version where applicable.
Standardize CI candidate image tagging on the shared suffix format
(-test) instead of the previous prefix-based test tags. Update the
Taskfiles and PR/weekly workflows to build, pull, inspect, and run
container-structure-tests against the suffix-tagged images consistently.
Expand the PR and dependency-update workflow matrices to cover all supported
terragrunt flavors, and make every Azure-aware workflow resolve AZ_VERSION
from Dockerfile.azure so release and validation paths use the same source of
truth.
This keeps the plain/slim/AWS/GCP images free of Azure dependencies, makes
the Azure variants explicit, and removes the CST tag mismatch that was
breaking reusable workflow runs.
📁 Modified files
.dockerignore | 1 +
.github/dependabot.yml | 8 +-
.github/workflows/auto-pull-request-create.yml | 22 +--
.github/workflows/cron-dependency-update.yml | 24 +--
.github/workflows/manual-release-create.yml | 8 +-
Dockerfile | 16 +-
Dockerfile.azure (new) | 205 +++++++++++++++++++++++++
README.md | 2 +
Taskfile.docker.yml | 10 +-
Taskfile.scripts.yml | 85 +++++++++-
Taskfile.terragrunt.yml | 129 +++++++++++-----
pip/aws/requirements.txt | 2 +-
tests/aws-azure-gcp.yml | 31 +---
tests/aws-azure.yml | 29 +---
tests/aws-gcp.yml | 27 +---
tests/aws.yml | 25 +--
tests/azure-gcp.yml | 24 +--
tests/azure.yml | 22 +--
tests/gcp.yml | 20 +--
tests/ot.yml | 4 +-
tests/plain.yml | 18 +--
tests/slim.yml | 2 +-
tests/tf.yml | 4 +-
23 files changed, 475 insertions(+), 243 deletions(-)
Check CONTRIBUTING.md and CODE_OF_CONDUCT.md for more information