1
0
mirror of https://github.com/go-task/task.git synced 2025-04-25 12:25:07 +02:00

fix: handle int and float env variable by converting them to string (#1641)

This commit is contained in:
Valentin Maerten 2024-05-09 16:14:38 +02:00 committed by GitHub
parent 78a69c4c3e
commit 3397f2855f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 23 additions and 7 deletions

16
internal/env/env.go vendored
View File

@ -13,19 +13,25 @@ func Get(t *ast.Task) []string {
}
environ := os.Environ()
for k, v := range t.Env.ToCacheMap() {
str, isString := v.(string)
if !isString {
if !isTypeAllowed(v) {
continue
}
if _, alreadySet := os.LookupEnv(k); alreadySet {
continue
}
environ = append(environ, fmt.Sprintf("%s=%s", k, str))
environ = append(environ, fmt.Sprintf("%s=%v", k, v))
}
return environ
}
func isTypeAllowed(v any) bool {
switch v.(type) {
case string, int, float32, float64:
return true
default:
return false
}
}

View File

@ -101,8 +101,9 @@ func TestEnv(t *testing.T) {
Target: "default",
TrimSpace: false,
Files: map[string]string{
"local.txt": "GOOS='linux' GOARCH='amd64' CGO_ENABLED='0'\n",
"global.txt": "FOO='foo' BAR='overriden' BAZ='baz'\n",
"local.txt": "GOOS='linux' GOARCH='amd64' CGO_ENABLED='0'\n",
"global.txt": "FOO='foo' BAR='overriden' BAZ='baz'\n",
"multiple_type.txt": "FOO='1' BAR='' BAZ='1.1'\n",
},
}
tt.Run(t)

View File

@ -14,6 +14,7 @@ tasks:
cmds:
- task: local
- task: global
- task: multiple_type
local:
vars:
@ -31,3 +32,11 @@ tasks:
BAR: overriden
cmds:
- echo "FOO='$FOO' BAR='$BAR' BAZ='$BAZ'" > global.txt
multiple_type:
env:
FOO: 1
BAR: true
BAZ: 1.1
cmds:
- echo "FOO='$FOO' BAR='$BAR' BAZ='$BAZ'" > multiple_type.txt