Skip to content

Commit cb94001

Browse files
authored
do not perform autodetection to reduce memory consuption in server (#1784)
* do not perform autodetection to reduce memory consuption in server
1 parent d181467 commit cb94001

File tree

2 files changed

+6
-147
lines changed

2 files changed

+6
-147
lines changed

libs/digger_config/digger_config.go

Lines changed: 4 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -274,17 +274,16 @@ func HandleYamlProjectGeneration(config *DiggerConfigYaml, terraformDir string,
274274
DefaultWorkflow: workflow,
275275
WorkflowFile: b.WorkflowFile,
276276
FilterPath: path.Join(terraformDir, *b.RootDir),
277-
};
277+
}
278278

279-
// allow blocks to pass in roles that can be assummed by aws
279+
// allow blocks to pass in roles that can be assummed by aws
280280
tgParsingConfig.AwsRoleToAssume = b.AwsRoleToAssume
281-
282281

283282
err := hydrateDiggerConfigYamlWithTerragrunt(config, tgParsingConfig, terraformDir)
284283
if err != nil {
285284
return err
286285
}
287-
286+
288287
}
289288
} else {
290289
includePatterns = []string{b.Include}
@@ -325,16 +324,7 @@ func LoadDiggerConfigYaml(workingDir string, generateProjects bool, changedFiles
325324
}
326325

327326
if fileName == "" {
328-
configYaml, err = AutoDetectDiggerConfig(workingDir)
329-
if err != nil {
330-
return nil, fmt.Errorf("failed to auto detect digger digger_config: %v", err)
331-
}
332-
marshalledConfig, err := yaml.Marshal(configYaml)
333-
if err != nil {
334-
log.Printf("failed to marshal auto detected digger digger_config: %v", err)
335-
} else {
336-
log.Printf("Auto detected digger digger_config: \n%v", string(marshalledConfig))
337-
}
327+
return nil, fmt.Errorf("could not fimd digger.yml or digger.yaml in root of repository")
338328
} else {
339329
data, err := os.ReadFile(fileName)
340330
if err != nil {
@@ -358,7 +348,6 @@ func LoadDiggerConfigYaml(workingDir string, generateProjects bool, changedFiles
358348
}
359349
}
360350

361-
362351
return configYaml, nil
363352
}
364353

@@ -514,64 +503,6 @@ func hydrateDiggerConfigYamlWithTerragrunt(configYaml *DiggerConfigYaml, parsing
514503
return nil
515504
}
516505

517-
func AutoDetectDiggerConfig(workingDir string) (*DiggerConfigYaml, error) {
518-
configYaml := &DiggerConfigYaml{}
519-
telemetry := true
520-
configYaml.Telemetry = &telemetry
521-
522-
TraverseToNestedProjects := false
523-
configYaml.TraverseToNestedProjects = &TraverseToNestedProjects
524-
525-
AllowDraftPRs := false
526-
configYaml.AllowDraftPRs = &AllowDraftPRs
527-
528-
terragruntDirWalker := &FileSystemTerragruntDirWalker{}
529-
terraformDirWalker := &FileSystemTopLevelTerraformDirWalker{}
530-
moduleDirWalker := &FileSystemModuleDirWalker{}
531-
532-
terragruntDirs, err := terragruntDirWalker.GetDirs(workingDir, configYaml)
533-
534-
if err != nil {
535-
return nil, err
536-
}
537-
538-
terraformDirs, err := terraformDirWalker.GetDirs(workingDir, configYaml)
539-
if err != nil {
540-
return nil, err
541-
}
542-
543-
moduleDirs, err := moduleDirWalker.GetDirs(workingDir, configYaml)
544-
545-
var modulePatterns []string
546-
for _, dir := range moduleDirs {
547-
modulePatterns = append(modulePatterns, dir+"/**")
548-
}
549-
550-
if err != nil {
551-
return nil, err
552-
}
553-
if len(terragruntDirs) > 0 {
554-
configYaml.GenerateProjectsConfig = &GenerateProjectsConfigYaml{
555-
Terragrunt: true,
556-
}
557-
return configYaml, nil
558-
} else if len(terraformDirs) > 0 {
559-
for _, dir := range terraformDirs {
560-
var projectName string
561-
if dir == "./" {
562-
projectName = "default"
563-
} else {
564-
projectName = strings.ReplaceAll(dir, "/", "_")
565-
}
566-
project := ProjectYaml{Name: projectName, Dir: dir, Workflow: defaultWorkflowName, Workspace: "default", Terragrunt: false, IncludePatterns: modulePatterns}
567-
configYaml.Projects = append(configYaml.Projects, &project)
568-
}
569-
return configYaml, nil
570-
} else {
571-
return nil, fmt.Errorf("no terragrunt or terraform project detected in the repository")
572-
}
573-
}
574-
575506
func (c *DiggerConfig) GetProject(projectName string) *Project {
576507
for _, project := range c.Projects {
577508
if projectName == project.Name {

libs/digger_config/digger_config_test.go

Lines changed: 2 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -90,27 +90,8 @@ func TestNoDiggerYaml(t *testing.T) {
9090
defer deleteFile()
9191

9292
os.Chdir(tempDir)
93-
dg, _, _, err := LoadDiggerConfig("./", true, nil)
94-
95-
assert.NoError(t, err, "expected error to be nil")
96-
assert.NotNil(t, dg, "expected digger digger_config to be not nil")
97-
assert.Equal(t, 1, len(dg.Projects))
98-
assert.Equal(t, false, dg.AutoMerge)
99-
assert.Equal(t, true, dg.Telemetry)
100-
assert.Equal(t, false, dg.TraverseToNestedProjects)
101-
assert.Equal(t, 1, len(dg.Workflows))
102-
assert.Equal(t, "default", dg.Projects[0].Name)
103-
assert.Equal(t, "./", dg.Projects[0].Dir)
104-
105-
workflow := dg.Workflows["default"]
106-
assert.NotNil(t, workflow, "expected workflow to be not nil")
107-
assert.NotNil(t, workflow.Plan)
108-
assert.NotNil(t, workflow.Plan.Steps)
109-
110-
assert.NotNil(t, workflow.Apply)
111-
assert.NotNil(t, workflow.Apply.Steps)
112-
assert.NotNil(t, workflow.EnvVars)
113-
assert.NotNil(t, workflow.Configuration)
93+
_, _, _, err := LoadDiggerConfig("./", true, nil)
94+
assert.Error(t, err, "expected error since digger.yml and digger.yaml is missing")
11495
}
11596

11697
func TestDefaultDiggerConfig(t *testing.T) {
@@ -367,37 +348,6 @@ generate_projects:
367348
assert.Equal(t, 2, len(dg.Projects))
368349
}
369350

370-
func TestGenerateProjectsWithoutDiggerConfig(t *testing.T) {
371-
tempDir, teardown := setUp()
372-
defer teardown()
373-
374-
dirsWithTfToCreate := []string{"dev/test1", "dev/test1/db", "dev/test1/vpc", "dev/test2", "dev/test2/db", "dev/test2/vpc", "dev/project", "prod/test1", "prod/test2", "prod/project", "test", "modules/test1", "modules/test2"}
375-
376-
for _, dir := range dirsWithTfToCreate {
377-
err := os.MkdirAll(path.Join(tempDir, dir), os.ModePerm)
378-
defer createFile(path.Join(tempDir, dir, "main.tf"), "")()
379-
assert.NoError(t, err, "expected error to be nil")
380-
}
381-
382-
dirtsWithoutTfToCreate := []string{"docs", "random", "docs/random"}
383-
for _, dir := range dirtsWithoutTfToCreate {
384-
err := os.MkdirAll(path.Join(tempDir, dir), os.ModePerm)
385-
assert.NoError(t, err, "expected error to be nil")
386-
}
387-
388-
dg, _, _, err := LoadDiggerConfig(tempDir, true, nil)
389-
assert.NoError(t, err, "expected error to be nil")
390-
assert.NotNil(t, dg, "expected digger digger_config to be not nil")
391-
assert.Equal(t, "dev_project", dg.Projects[0].Name)
392-
assert.Equal(t, "dev_test1", dg.Projects[1].Name)
393-
assert.Equal(t, "dev_test2", dg.Projects[2].Name)
394-
assert.Equal(t, "prod_project", dg.Projects[3].Name)
395-
assert.Equal(t, "prod_test1", dg.Projects[4].Name)
396-
assert.Equal(t, "prod_test2", dg.Projects[5].Name)
397-
assert.Equal(t, "test", dg.Projects[6].Name)
398-
assert.Equal(t, 7, len(dg.Projects))
399-
}
400-
401351
func TestDiggerGenerateProjectsWithSubDirs(t *testing.T) {
402352
tempDir, teardown := setUp()
403353
defer teardown()
@@ -431,28 +381,6 @@ generate_projects:
431381
assert.Equal(t, 2, len(dg.Projects))
432382
}
433383

434-
// A .tfvars file should not be recognised as .tf and break parsing for projects nested deeper
435-
// Issue: https://github.com/diggerhq/digger/issues/887
436-
func TestDiggerGenerateProjectsWithTfvars(t *testing.T) {
437-
tempDir, teardown := setUp()
438-
defer teardown()
439-
440-
dirsWithTfToCreate := []string{"dev/us-east-1"}
441-
442-
for _, dir := range dirsWithTfToCreate {
443-
err := os.MkdirAll(path.Join(tempDir, dir), os.ModePerm)
444-
defer createFile(path.Join(tempDir, dir, "main.tf"), "")()
445-
assert.NoError(t, err, "expected error to be nil")
446-
}
447-
448-
defer createFile(path.Join(tempDir, "dev", "blank.tfvars"), "")()
449-
450-
dg, _, _, err := LoadDiggerConfig(tempDir, true, nil)
451-
assert.NoError(t, err, "expected error to be nil")
452-
assert.NotNil(t, dg, "expected digger digger_config to be not nil")
453-
assert.Equal(t, 1, len(dg.Projects))
454-
}
455-
456384
func TestDiggerGenerateProjectsIgnoreSubdirs(t *testing.T) {
457385
tempDir, teardown := setUp()
458386
defer teardown()

0 commit comments

Comments
 (0)