Fix default client env when var is set (#2128)

Signed-off-by: Helder Correia <174525+helderco@users.noreply.github.com>
This commit is contained in:
Helder Correia 2022-04-11 19:35:17 +00:00 committed by GitHub
parent 80ae63928b
commit defb4642cd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 30 additions and 1 deletions

View File

@ -62,7 +62,7 @@ func (t clientEnvTask) getEnv(envvar string, v *compiler.Value, pctx *plancontex
return secret.MarshalCUE(), nil return secret.MarshalCUE(), nil
} }
if val.IsConcrete() { if !hasDefault && val.IsConcrete() {
return nil, fmt.Errorf("%s: unexpected concrete value, please use a type or set a default", envvar) return nil, fmt.Errorf("%s: unexpected concrete value, please use a type or set a default", envvar)
} }

View File

@ -183,6 +183,16 @@ setup() {
export TEST_SECRET="bar" export TEST_SECRET="bar"
"$DAGGER" "do" -p ./plan/client/env/usage.cue test "$DAGGER" "do" -p ./plan/client/env/usage.cue test
}
@test "plan/client/env default" {
cd "${TESTDIR}"
export TEST_DEFAULT="hello universe"
"$DAGGER" "do" -p ./plan/client/env/default.cue test
} }
@test "plan/client/env not exists" { @test "plan/client/env not exists" {

19
tests/plan/client/env/default.cue vendored Normal file
View File

@ -0,0 +1,19 @@
package main
import (
"dagger.io/dagger"
"dagger.io/dagger/core"
)
dagger.#Plan & {
client: env: TEST_DEFAULT: string | *"hello world"
actions: {
image: core.#Pull & {
source: "alpine:3.15.0@sha256:e7d88de73db3d3fd9b2d63aa7f447a10fd0220b7cbf39803c803f2af9ba256b3"
}
test: core.#Exec & {
input: image.output
args: ["test", client.env.TEST_DEFAULT, "=", "hello universe"]
}
}
}