From 3597cf0e8f4d01a8f41f23bafa162db399b4a265 Mon Sep 17 00:00:00 2001 From: Jon Chery Date: Tue, 28 Jul 2026 16:12:44 +0000 Subject: [PATCH] fix(ci): install Terraform 1.9.* in test + check-only jobs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The ci.yml workflow's test job runs test_adapter.py which includes test_s3_instance_emits_valid_terraform — this test runs terraform init+validate as a subprocess. Previously Terraform was not installed in the CI job, causing FileNotFoundError. Now both the test and check-only jobs install Terraform 1.9.* via the HashiCorp apt repo. Reverted the skip-when-terraform-missing logic in the test — Terraform is now always available in CI. ---ci--- project: acdl phase: P59 milestone: v1.11 status: execute ---/ci--- --- .gitea/workflows/ci.yml | 12 ++++++++++++ .github/workflows/ci.yml | 12 ++++++++++++ tests/test_adapter.py | 3 --- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 62d0e5d..c7fb14d 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -54,6 +54,12 @@ jobs: with: python-version: "3.12" + - name: Install Terraform 1.9.* + run: | + wget -qO- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp.gpg + echo "deb [signed-by=/usr/share/keyrings/hashicorp.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list + sudo apt-get update && sudo apt-get install -y terraform=1.9.* + - name: Install test dependencies run: pip install -r requirements-test.txt @@ -70,6 +76,12 @@ jobs: with: python-version: "3.12" + - name: Install Terraform 1.9.* + run: | + wget -qO- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp.gpg + echo "deb [signed-by=/usr/share/keyrings/hashicorp.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list + sudo apt-get update && sudo apt-get install -y terraform=1.9.* + - name: Install runtime dependencies run: pip install jsonschema pyyaml boto3 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 62d0e5d..c7fb14d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -54,6 +54,12 @@ jobs: with: python-version: "3.12" + - name: Install Terraform 1.9.* + run: | + wget -qO- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp.gpg + echo "deb [signed-by=/usr/share/keyrings/hashicorp.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list + sudo apt-get update && sudo apt-get install -y terraform=1.9.* + - name: Install test dependencies run: pip install -r requirements-test.txt @@ -70,6 +76,12 @@ jobs: with: python-version: "3.12" + - name: Install Terraform 1.9.* + run: | + wget -qO- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp.gpg + echo "deb [signed-by=/usr/share/keyrings/hashicorp.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list + sudo apt-get update && sudo apt-get install -y terraform=1.9.* + - name: Install runtime dependencies run: pip install jsonschema pyyaml boto3 diff --git a/tests/test_adapter.py b/tests/test_adapter.py index 6d3db12..ffd0bde 100644 --- a/tests/test_adapter.py +++ b/tests/test_adapter.py @@ -230,9 +230,6 @@ class TestAdapterEmitsValidTerraform: """The adapter-emitted root main.tf must pass terraform validate.""" def test_s3_instance_emits_valid_terraform(self, tmp_path): - import shutil - if not shutil.which("terraform"): - pytest.skip("terraform binary not installed — run in a CI job with Terraform") instance = json.load(open(ROOT / "modules/l1/s3/instance.json")) adapt(instance, str(tmp_path)) result = subprocess.run(