Skip to content

Commit

Permalink
fix: Correct search logic to include sort() which will return the c…
Browse files Browse the repository at this point in the history
…orrect result (#18)

Co-authored-by: Bryant Biggs <bryantbiggs@gmail.com>
  • Loading branch information
jotasixto and bryantbiggs authored Nov 13, 2022
1 parent d35ec15 commit c592570
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 13 deletions.
12 changes: 9 additions & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:

- name: Get root directories
id: dirs
uses: clowdhaus/terraform-composite-actions/directories@v1.3.0
uses: clowdhaus/terraform-composite-actions/directories@v1.8.2

preCommit:
name: Pre-commit
Expand Down Expand Up @@ -49,7 +49,10 @@ jobs:
terraform_version: ${{ steps.minMax.outputs.minVersion }}

- name: Terraform validate ${{ steps.minMax.outputs.minVersion }}
run: terraform init && terraform validate
working-directory: ${{ matrix.directory }}
run: |
terraform init
terraform validate
# Max version
- name: Remove min Terraform
Expand All @@ -61,4 +64,7 @@ jobs:
terraform_version: ${{ steps.minMax.outputs.maxVersion }}

- name: Terraform validate ${{ steps.minMax.outputs.maxVersion }}
run: terraform init && terraform validate
working-directory: ${{ matrix.directory }}
run: |
terraform init
terraform validate
2 changes: 1 addition & 1 deletion dist/index.js

Large diffs are not rendered by default.

13 changes: 10 additions & 3 deletions src/search.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
import * as core from '@actions/core';
import * as findInFiles from 'find-in-files';

const regExprRequiredVersion = /(?<=(required_version.=.)).*/;
const regExprSubDirectory = /(wrappers|examples|modules)/;
const regExprWrappers = /wrappers/;

export async function versionConstraintSearch(dir: string): Promise<string> {
const files = await findInFiles.find('required_versions*s*', dir, '.tf$');
const key = Object.keys(files).filter(word => !regExprSubDirectory.test(word))[0];
const line = files[key].line;
core.debug(`files: ${files}`);

const filteredResults = Object.keys(files)
.sort((a, b) => a.length - b.length)
.filter(word => !regExprWrappers.test(word));
core.debug(`filteredResults: ${filteredResults}`);
const line = files[filteredResults[0]].line;

if (line) {
const extractResults = regExprRequiredVersion.exec(line);
const res = extractResults ? extractResults[0] : '';
core.debug(`Result: ${res}`);
return res;
}

Expand Down
5 changes: 1 addition & 4 deletions tests/0.12/versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@ terraform {
required_version = "~> 0.12"

required_providers {
aws = {
source = "hashicorp/aws"
version = ">= 4.27"
}
aws = ">= 2.0"
}
}
2 changes: 1 addition & 1 deletion tests/0.13/versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = ">= 4.27"
version = ">= 3.0"
}
}
}
2 changes: 1 addition & 1 deletion tests/terraform-aws-alb/versions.tf
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
terraform {
required_version = ">= 1.0.0"
required_version = ">= 1.0"

required_providers {
aws = {
Expand Down

0 comments on commit c592570

Please sign in to comment.