diff --git a/.github/workflows/test-version.yaml b/.github/workflows/test-version.yaml index 1c67b758..ea55e2f8 100644 --- a/.github/workflows/test-version.yaml +++ b/.github/workflows/test-version.yaml @@ -103,7 +103,7 @@ jobs: - name: Checkout uses: actions/checkout@v3 - - name: Test terraform-version + - name: Test getting version from .tools-versions uses: ./terraform-version id: terraform-version with: @@ -118,6 +118,21 @@ jobs: echo "::error:: Terraform version not set from .terraform-version" exit 1 fi + + mv tests/workflows/test-version/asdf/.tool-versions .tool-versions + + - name: Test getting version from root .tools-versions + uses: ./terraform-version + id: terraform-version + with: + path: tests/workflows/test-version/asdf + + - name: Check the version + run: | + if [[ "${{ steps.terraform-version.outputs.terraform }}" != "0.12.11" ]]; then + echo "::error:: Terraform version not set from .terraform-version" + exit 1 + fi env: runs-on: ubuntu-latest diff --git a/image/src/terraform_version/asdf.py b/image/src/terraform_version/asdf.py index 558428f7..98939322 100644 --- a/image/src/terraform_version/asdf.py +++ b/image/src/terraform_version/asdf.py @@ -28,7 +28,7 @@ def try_read_asdf(inputs: InitInputs, workspace_path: str, versions: Iterable[Ve module_path = os.path.abspath(inputs.get('INPUT_PATH', '.')) - while module_path not in ['/', workspace_path]: + while module_path != '/': asdf_path = os.path.join(module_path, '.tool-versions') if os.path.isfile(asdf_path): @@ -38,6 +38,9 @@ def try_read_asdf(inputs: InitInputs, workspace_path: str, versions: Iterable[Ve except Exception as e: debug(str(e)) + if module_path == workspace_path: + break + module_path = os.path.dirname(module_path) return None