Skip to content

Commit b4e1d53

Browse files
authored
Merge pull request #1417 from diggerhq/fix/fix-include-patterns-terragrunt
fix terragrunt relative paths by converting to absolute path
2 parents da993ad + aab753e commit b4e1d53

File tree

3 files changed

+35
-1
lines changed

3 files changed

+35
-1
lines changed

libs/digger_config/digger_config.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -400,9 +400,17 @@ func hydrateDiggerConfigYamlWithTerragrunt(configYaml *DiggerConfigYaml, parsing
400400
}
401401

402402
for _, atlantisProject := range atlantisConfig.Projects {
403+
404+
// normalize paths
405+
projectDir := path.Join(pathPrefix, atlantisProject.Dir)
406+
atlantisProject.Autoplan.WhenModified, err = GetPatternsRelativeToRepo(projectDir, atlantisProject.Autoplan.WhenModified)
407+
if err != nil {
408+
return fmt.Errorf("could not normalize patterns: %v", err)
409+
}
410+
403411
configYaml.Projects = append(configYaml.Projects, &ProjectYaml{
404412
Name: atlantisProject.Name,
405-
Dir: path.Join(pathPrefix, atlantisProject.Dir),
413+
Dir: projectDir,
406414
Workspace: atlantisProject.Workspace,
407415
Terragrunt: true,
408416
Workflow: atlantisProject.Workflow,

libs/digger_config/utils.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@ import (
77
"path/filepath"
88
)
99

10+
func GetPatternsRelativeToRepo(projectPath string, patterns []string) ([]string, error) {
11+
res := make([]string, 0)
12+
for _, pattern := range patterns {
13+
res = append(res, path.Join(projectPath, pattern))
14+
}
15+
return res, nil
16+
}
17+
1018
func NormalizeFileName(fileName string) string {
1119
res, err := filepath.Abs(path.Join("/", fileName))
1220
if err != nil {

libs/digger_config/utils_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,21 @@ func TestMatchIncludeExcludePatternsToFile(t *testing.T) {
2020
result = MatchIncludeExcludePatternsToFile("projects/dev/project", includePatterns, excludePatterns)
2121
assert.Equal(t, false, result)
2222
}
23+
24+
func TestGetPatternsRelativeToRepo(t *testing.T) {
25+
projectDir := "myProject/terraform/environments/devel"
26+
includePatterns := []string{"../../*.tf*"}
27+
res, _ := GetPatternsRelativeToRepo(projectDir, includePatterns)
28+
assert.Equal(t, "myProject/terraform/*.tf*", res[0])
29+
30+
projectDir = "myProject/terraform/environments/devel"
31+
includePatterns = []string{"*.tf"}
32+
res, _ = GetPatternsRelativeToRepo(projectDir, includePatterns)
33+
assert.Equal(t, "myProject/terraform/environments/devel/*.tf", res[0])
34+
35+
projectDir = "myProject/terraform/environments/devel"
36+
includePatterns = []string{"*.hcl"}
37+
res, _ = GetPatternsRelativeToRepo(projectDir, includePatterns)
38+
assert.Equal(t, "myProject/terraform/environments/devel/*.hcl", res[0])
39+
40+
}

0 commit comments

Comments
 (0)