From 9b477abe1554cc88245050f70dbe160d2ad7d6f3 Mon Sep 17 00:00:00 2001 From: Daniel Flook Date: Thu, 23 Jan 2025 17:44:06 +0000 Subject: [PATCH] Add failing test for version constraint in a file we fail to parse --- .github/workflows/test-version.yaml | 28 +++++++++- .../workflows/test-version/hard-parse/main.tf | 54 +++++++++++++++++++ .../test-version/hard-parse/module/main.tf | 1 + 3 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 tests/workflows/test-version/hard-parse/main.tf create mode 100644 tests/workflows/test-version/hard-parse/module/main.tf diff --git a/.github/workflows/test-version.yaml b/.github/workflows/test-version.yaml index bf869c82..e1f3b2d7 100644 --- a/.github/workflows/test-version.yaml +++ b/.github/workflows/test-version.yaml @@ -888,7 +888,7 @@ jobs: with: persist-credentials: false - - name: Test terraform-version + - name: Test tofu-version uses: ./tofu-version id: tofu-version env: @@ -907,3 +907,29 @@ jobs: echo "::error:: Terraform version not selected" exit 1 fi + + hard_parse: + runs-on: ubuntu-24.04 + name: Get version constraint from hard to parse file + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + persist-credentials: false + + - name: Test terraform-version + uses: ./terraform-version + id: terraform-version + with: + path: tests/workflows/test-version/hard-parse + + - name: Check the version + env: + DETECTED_TERRAFORM_VERSION: ${{ steps.tofu-version.outputs.terraform }} + run: | + echo "The terraform version was $DETECTED_TERRAFORM_VERSION" + + if [[ "$DETECTED_TERRAFORM_VERSION" != "1.10.4" ]]; then + echo "::error:: Terraform constraint not parsed correctly" + exit 1 + fi diff --git a/tests/workflows/test-version/hard-parse/main.tf b/tests/workflows/test-version/hard-parse/main.tf new file mode 100644 index 00000000..2759b091 --- /dev/null +++ b/tests/workflows/test-version/hard-parse/main.tf @@ -0,0 +1,54 @@ +terraform { + +} + +terraform { + required_version = "1.10.4" +} + +locals { + cloud_run_services = [ + { + service_name = "service-1", + output_topics = [ + { + name = "topic-1", + version = "v1" + } + ] + } + ] +} + + +module "pubsub" { + for_each = { + for service in local.cloud_run_services : service.service_name => service + } + source = "./module" + topics = [ + for entity in each.value.output_topics : { + topic_name = entity.version != "" ? format("Topic-%s-%s", entity.name, entity.version) : format("Topic-%s", entity.name) + subscription_name = entity.version != "" ? format("Sub-%s-%s", entity.name, entity.version) : format("Sub-%s", entity.name) + } + ] +} + + +variable "not" {} + +variable "should-be-sensitive" { + sensitive=true +} + +variable "not-again" { + sensitive = false +} + +variable also_sensitive { + sensitive = "true" +} + +terraform { + backend "s3" {} +} diff --git a/tests/workflows/test-version/hard-parse/module/main.tf b/tests/workflows/test-version/hard-parse/module/main.tf new file mode 100644 index 00000000..141b3934 --- /dev/null +++ b/tests/workflows/test-version/hard-parse/module/main.tf @@ -0,0 +1 @@ +variable "topics" {} \ No newline at end of file