diff --git a/pkg/model/workflow.go b/pkg/model/workflow.go index f567a1f7..78914e82 100644 --- a/pkg/model/workflow.go +++ b/pkg/model/workflow.go @@ -458,16 +458,8 @@ func (s *Step) String() string { } // Environments returns string-based key=value map for a step -// Note: all keys are uppercase func (s *Step) Environment() map[string]string { - env := environment(s.Env) - - for k, v := range env { - delete(env, k) - env[strings.ToUpper(k)] = v - } - - return env + return environment(s.Env) } // GetEnv gets the env for a step diff --git a/pkg/runner/step.go b/pkg/runner/step.go index 560ba632..a3829fb9 100644 --- a/pkg/runner/step.go +++ b/pkg/runner/step.go @@ -183,7 +183,7 @@ func setupEnv(ctx context.Context, step step) error { (*step.getEnv())[k] = exprEval.Interpolate(ctx, v) } } - // after we have an evaluated step context, update the expresson evaluator with a new env context + // after we have an evaluated step context, update the expressions evaluator with a new env context // you can use step level env in the with property of a uses construct exprEval = rc.NewExpressionEvaluatorWithEnv(ctx, *step.getEnv()) for k, v := range *step.getEnv() { diff --git a/pkg/runner/testdata/environment-variables/push.yml b/pkg/runner/testdata/environment-variables/push.yml new file mode 100644 index 00000000..37218ad1 --- /dev/null +++ b/pkg/runner/testdata/environment-variables/push.yml @@ -0,0 +1,33 @@ +name: environment variables +on: push + +jobs: + test: + runs-on: ubuntu-latest + steps: + - name: Test on job level + run: | + echo \$UPPER=$UPPER + echo \$upper=$upper + echo \$LOWER=$LOWER + echo \$lower=$lower + [[ "$UPPER" = "UPPER" ]] || exit 1 + [[ "$upper" = "" ]] || exit 1 + [[ "$LOWER" = "" ]] || exit 1 + [[ "$lower" = "lower" ]] || exit 1 + - name: Test on step level + run: | + echo \$UPPER=$UPPER + echo \$upper=$upper + echo \$LOWER=$LOWER + echo \$lower=$lower + [[ "$UPPER" = "upper" ]] || exit 1 + [[ "$upper" = "" ]] || exit 1 + [[ "$LOWER" = "" ]] || exit 1 + [[ "$lower" = "LOWER" ]] || exit 1 + env: + UPPER: upper + lower: LOWER + env: + UPPER: UPPER + lower: lower