diff --git a/server/events/runtime/init_step_runner.go b/server/events/runtime/init_step_runner.go index b15e9de17a..6c1fdf6779 100644 --- a/server/events/runtime/init_step_runner.go +++ b/server/events/runtime/init_step_runner.go @@ -16,12 +16,12 @@ func (i *InitStepRunner) Run(ctx models.ProjectCommandContext, extraArgs []strin if ctx.ProjectConfig != nil && ctx.ProjectConfig.TerraformVersion != nil { tfVersion = ctx.ProjectConfig.TerraformVersion } - terraformInitCmd := append([]string{"init", "-input=false", "-no-color"}, extraArgs...) + terraformInitCmd := append([]string{"init", "-input=false", "-no-color", "-upgrade"}, extraArgs...) // If we're running < 0.9 we have to use `terraform get` instead of `init`. if MustConstraint("< 0.9.0").Check(tfVersion) { ctx.Log.Info("running terraform version %s so will use `get` instead of `init`", tfVersion) - terraformInitCmd = append([]string{"get", "-no-color"}, extraArgs...) + terraformInitCmd = append([]string{"get", "-no-color", "-upgrade"}, extraArgs...) } out, err := i.TerraformExecutor.RunCommandWithVersion(ctx.Log, path, terraformInitCmd, tfVersion, ctx.Workspace) diff --git a/server/events/runtime/init_step_runner_test.go b/server/events/runtime/init_step_runner_test.go index 88538bcace..e989d89ac3 100644 --- a/server/events/runtime/init_step_runner_test.go +++ b/server/events/runtime/init_step_runner_test.go @@ -59,9 +59,9 @@ func TestRun_UsesGetOrInitForRightVersion(t *testing.T) { Equals(t, "", output) // If using init then we specify -input=false but not for get. - expArgs := []string{c.expCmd, "-input=false", "-no-color", "extra", "args"} + expArgs := []string{c.expCmd, "-input=false", "-no-color", "-upgrade", "extra", "args"} if c.expCmd == "get" { - expArgs = []string{c.expCmd, "-no-color", "extra", "args"} + expArgs = []string{c.expCmd, "-no-color", "-upgrade", "extra", "args"} } terraform.VerifyWasCalledOnce().RunCommandWithVersion(nil, "/path", expArgs, tfVersion, "workspace") })