in helpers/foundation-deployer/stages/destroy.go [157:218]
func destroyStage(t testing.TB, sc StageConf, s steps.Steps, c CommonConf) error {
gcpPath := filepath.Join(c.CheckoutPath, sc.Repo)
for _, e := range sc.Envs {
err := s.RunDestroyStep(fmt.Sprintf("%s.%s", sc.Repo, e), func() error {
for _, g := range sc.GroupingUnits {
options := &terraform.Options{
TerraformDir: filepath.Join(gcpPath, g, e),
Logger: c.Logger,
NoColor: true,
RetryableTerraformErrors: testutils.RetryableTransientErrors,
MaxRetries: 2,
TimeBetweenRetries: 2 * time.Minute,
}
conf := utils.CloneCSR(t, sc.Repo, gcpPath, sc.CICDProject, c.Logger)
branch := e
if branch == "shared" {
branch = "production"
}
err := conf.CheckoutBranch(branch)
if err != nil {
return err
}
err = destroyEnv(t, options, sc.StageSA)
if err != nil {
return err
}
}
return nil
})
if err != nil {
return err
}
}
groupingUnits := []string{}
if sc.HasManualStep {
groupingUnits = sc.GroupingUnits
}
for _, g := range groupingUnits {
err := s.RunDestroyStep(fmt.Sprintf("%s.%s.apply-shared", sc.Repo, g), func() error {
options := &terraform.Options{
TerraformDir: filepath.Join(gcpPath, g, "shared"),
Logger: c.Logger,
NoColor: true,
RetryableTerraformErrors: testutils.RetryableTransientErrors,
MaxRetries: 2,
TimeBetweenRetries: 2 * time.Minute,
}
conf := utils.CloneCSR(t, ProjectsRepo, gcpPath, sc.CICDProject, c.Logger)
err := conf.CheckoutBranch("production")
if err != nil {
return err
}
return destroyEnv(t, options, sc.StageSA)
})
if err != nil {
return err
}
}
fmt.Println("end of", sc.Step, "destroy")
return nil
}