This commit is contained in:
CrazyMax 2025-05-12 15:46:07 +02:00 committed by GitHub
commit 932b8ca10b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 44 additions and 1 deletions

View File

@ -400,6 +400,44 @@ func TestHCLTypedVariables(t *testing.T) {
require.Contains(t, err.Error(), "failed to parse IS_FOO as bool")
}
func TestHCLNullVariableDefault(t *testing.T) {
dt := []byte(`
variable "FOO" {}
target "default" {
args = {
isNull = equal(FOO, null)
isEmptyString = equal(FOO, "")
}
}`)
c, err := ParseFile(dt, "docker-bake.hcl")
require.NoError(t, err)
require.Len(t, c.Targets, 1)
require.Len(t, c.Targets[0].Args, 2)
require.Equal(t, "true", *c.Targets[0].Args["isNull"])
require.Equal(t, "false", *c.Targets[0].Args["isEmptyString"])
}
func TestHCLEmptyVariable(t *testing.T) {
dt := []byte(`
variable "FOO" {
default = ""
}
target "default" {
args = {
isNull = equal(FOO, null)
isEmptyString = equal(FOO, "")
}
}`)
c, err := ParseFile(dt, "docker-bake.hcl")
require.NoError(t, err)
require.Len(t, c.Targets, 1)
require.Len(t, c.Targets[0].Args, 2)
require.Equal(t, "false", *c.Targets[0].Args["isNull"])
require.Equal(t, "true", *c.Targets[0].Args["isEmptyString"])
}
func TestHCLNullVariables(t *testing.T) {
dt := []byte(`
variable "FOO" {

View File

@ -280,7 +280,12 @@ func (p *parser) resolveValue(ectx *hcl.EvalContext, name string) (err error) {
if def == nil {
val, ok := p.opt.Vars[name]
if !ok {
val, _ = p.opt.LookupVar(name)
val, ok = p.opt.LookupVar(name)
if !ok {
vv := cty.NullVal(cty.DynamicPseudoType)
v = &vv
return
}
}
vv := cty.StringVal(val)
v = &vv