From 5dfe5f92a9086b6b1948e60643c54e7e15a8cab1 Mon Sep 17 00:00:00 2001 From: Hirotake Kobayashi Date: Sat, 24 May 2025 14:57:11 +0900 Subject: [PATCH] fix: Set Env variables when `output: hide` in multienv (#5319) Signed-off-by: Hirotake Kobayashi Co-authored-by: PePe Amengual <2208324+jamengual@users.noreply.github.com> --- server/core/runtime/multienv_step_runner.go | 2 +- .../core/runtime/multienv_step_runner_test.go | 34 +++++++++++++++---- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/server/core/runtime/multienv_step_runner.go b/server/core/runtime/multienv_step_runner.go index 6e4434111..328d0dee4 100644 --- a/server/core/runtime/multienv_step_runner.go +++ b/server/core/runtime/multienv_step_runner.go @@ -24,7 +24,7 @@ func (r *MultiEnvStepRunner) Run( envs map[string]string, postProcessOutput valid.PostProcessRunOutputOption, ) (string, error) { - res, err := r.RunStepRunner.Run(ctx, shell, command, path, envs, false, postProcessOutput) + res, err := r.RunStepRunner.Run(ctx, shell, command, path, envs, false, valid.PostProcessRunOutputShow) if err != nil { return "", err } diff --git a/server/core/runtime/multienv_step_runner_test.go b/server/core/runtime/multienv_step_runner_test.go index 326307fde..b39096a2b 100644 --- a/server/core/runtime/multienv_step_runner_test.go +++ b/server/core/runtime/multienv_step_runner_test.go @@ -21,29 +21,50 @@ func TestMultiEnvStepRunner_Run(t *testing.T) { cases := []struct { Command string ProjectName string + Output valid.PostProcessRunOutputOption ExpOut string ExpErr string - Version string + ExpEnv map[string]string }{ { Command: `echo 'TF_VAR_REPODEFINEDVARIABLE_ONE=value1'`, + Output: valid.PostProcessRunOutputShow, ExpOut: "Dynamic environment variables added:\nTF_VAR_REPODEFINEDVARIABLE_ONE\n", - Version: "v1.2.3", + ExpEnv: map[string]string{ + "TF_VAR_REPODEFINEDVARIABLE_ONE": "value1", + }, }, { Command: `echo 'TF_VAR_REPODEFINEDVARIABLE_TWO=value=1='`, + Output: valid.PostProcessRunOutputShow, ExpOut: "Dynamic environment variables added:\nTF_VAR_REPODEFINEDVARIABLE_TWO\n", - Version: "v1.2.3", + ExpEnv: map[string]string{ + "TF_VAR_REPODEFINEDVARIABLE_TWO": "value=1=", + }, }, { Command: `echo 'TF_VAR_REPODEFINEDVARIABLE_NO_VALUE'`, + Output: valid.PostProcessRunOutputShow, ExpErr: "Invalid environment variable definition: TF_VAR_REPODEFINEDVARIABLE_NO_VALUE", - Version: "v1.2.3", + ExpEnv: map[string]string{}, }, { Command: `echo 'TF_VAR1_MULTILINE="foo\\nbar",TF_VAR2_VALUEWITHCOMMA="one,two",TF_VAR3_CONTROL=true'`, + Output: valid.PostProcessRunOutputShow, ExpOut: "Dynamic environment variables added:\nTF_VAR1_MULTILINE\nTF_VAR2_VALUEWITHCOMMA\nTF_VAR3_CONTROL\n", - Version: "v1.2.3", + ExpEnv: map[string]string{ + "TF_VAR1_MULTILINE": "foo\\nbar", + "TF_VAR2_VALUEWITHCOMMA": "one,two", + "TF_VAR3_CONTROL": "true", + }, + }, + { + Command: `echo 'TF_VAR_REPODEFINEDVARIABLE_HIDE=value1'`, + Output: valid.PostProcessRunOutputHide, + ExpOut: "", + ExpEnv: map[string]string{ + "TF_VAR_REPODEFINEDVARIABLE_HIDE": "value1", + }, }, } RegisterMockTestingT(t) @@ -90,13 +111,14 @@ func TestMultiEnvStepRunner_Run(t *testing.T) { ProjectName: c.ProjectName, } envMap := make(map[string]string) - value, err := multiEnvStepRunner.Run(ctx, nil, c.Command, tmpDir, envMap, valid.PostProcessRunOutputShow) + value, err := multiEnvStepRunner.Run(ctx, nil, c.Command, tmpDir, envMap, c.Output) if c.ExpErr != "" { ErrContains(t, c.ExpErr, err) return } Ok(t, err) Equals(t, c.ExpOut, value) + Equals(t, c.ExpEnv, envMap) }) } }