From a52a98bc2a25cf5ed3b64f9a24624d91e538b41d Mon Sep 17 00:00:00 2001 From: Cristian Magherusan-Stanciu Date: Tue, 9 Jun 2026 10:12:55 -0700 Subject: [PATCH] fix(ci): docker compose v2 + bump terraform-validate to 1.10.5 Two mechanical CI infrastructure fixes surfaced by the audit after the integration branch was promoted to main and ci.yml started running on all PRs. 1. ubuntu-24.04 runners dropped docker-compose v1 (the standalone `docker-compose` binary). Switch the four command invocations in the e2e-tests job (ci.yml) and the docker-compose-test Makefile target to the Docker Compose v2 plugin form `docker compose`. The docker-compose.test.yml filename is unchanged. 2. The terraform-validate job pinned setup-terraform to 1.6.0, but every terraform/environments/*/main.tf declares required_version >= 1.10.0, so `terraform init`/`validate` aborted with "Unsupported Terraform Core version" for all three clouds. Bump to 1.10.5 to match the pin already used in pre-commit.yml. Verified: ci.yml parses as valid YAML; terraform init/validate against terraform/environments/aws now passes the version constraint (only the sandbox's offline provider cache fails, which the CI runner downloads). --- .github/workflows/ci.yml | 11 ++++++++--- Makefile | 4 ++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7444797f4..9472636a8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -240,7 +240,12 @@ jobs: - name: Setup Terraform uses: hashicorp/setup-terraform@dfe3c3f87815947d99a8997f908cb6525fc44e9e # v4.0.1 with: - terraform_version: 1.6.0 + # Must satisfy `required_version = ">= 1.10.0"` declared by every + # terraform/environments/*/main.tf -- pinning below 1.10 makes + # `terraform init`/`validate` abort with "Unsupported Terraform + # Core version". Matches the pin in pre-commit.yml so both + # workflows resolve to the same binary. + terraform_version: 1.10.5 - name: Terraform Format Check run: terraform fmt -check -recursive terraform/ @@ -390,14 +395,14 @@ jobs: - name: Run E2E tests with docker-compose run: | - docker-compose -f docker-compose.test.yml up --abort-on-container-exit --exit-code-from test-runner + docker compose -f docker-compose.test.yml up --abort-on-container-exit --exit-code-from test-runner env: COMPOSE_INTERACTIVE_NO_CLI: 1 - name: Cleanup if: always() run: | - docker-compose -f docker-compose.test.yml down -v + docker compose -f docker-compose.test.yml down -v # Assert that the Azure custom-role actions list is identical in the TF module # and the ARM onboarding template. Fast (shell + jq only), so it always runs. diff --git a/Makefile b/Makefile index ddb735e6c..d67f45b58 100644 --- a/Makefile +++ b/Makefile @@ -229,8 +229,8 @@ cost-estimate: # Docker Compose E2E tests docker-compose-test: @echo "Running E2E tests with docker-compose..." - docker-compose -f docker-compose.test.yml up --abort-on-container-exit --exit-code-from test-runner - docker-compose -f docker-compose.test.yml down -v + docker compose -f docker-compose.test.yml up --abort-on-container-exit --exit-code-from test-runner + docker compose -f docker-compose.test.yml down -v # Install development dependencies install-dev-tools: