fix: handle env-vars case sensitive (#1493)

Closes #1488
This commit is contained in:
Markus Wolf 2022-12-07 16:31:33 +01:00 committed by GitHub
parent 8c5748a55c
commit 0f8861b9e3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 35 additions and 10 deletions

View file

@ -458,16 +458,8 @@ func (s *Step) String() string {
} }
// Environments returns string-based key=value map for a step // Environments returns string-based key=value map for a step
// Note: all keys are uppercase
func (s *Step) Environment() map[string]string { func (s *Step) Environment() map[string]string {
env := environment(s.Env) return environment(s.Env)
for k, v := range env {
delete(env, k)
env[strings.ToUpper(k)] = v
}
return env
} }
// GetEnv gets the env for a step // GetEnv gets the env for a step

View file

@ -183,7 +183,7 @@ func setupEnv(ctx context.Context, step step) error {
(*step.getEnv())[k] = exprEval.Interpolate(ctx, v) (*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 // you can use step level env in the with property of a uses construct
exprEval = rc.NewExpressionEvaluatorWithEnv(ctx, *step.getEnv()) exprEval = rc.NewExpressionEvaluatorWithEnv(ctx, *step.getEnv())
for k, v := range *step.getEnv() { for k, v := range *step.getEnv() {

View file

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