fix: Set Env variables when output: hide in multienv (#5319)

Signed-off-by: Hirotake Kobayashi <h.kobayashi@raksul.com>
Co-authored-by: PePe Amengual <2208324+jamengual@users.noreply.github.com>
This commit is contained in:
Hirotake Kobayashi
2025-05-24 14:57:11 +09:00
committed by GitHub
parent 4a44c3cfb1
commit 5dfe5f92a9
2 changed files with 29 additions and 7 deletions

View File

@@ -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
}

View File

@@ -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)
})
}
}