mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 18:13:42 +08:00 
			
		
		
		
	bake: fix map type checking to detect matrix property set to list
Signed-off-by: Justin Chadwell <me@jedevc.com>
This commit is contained in:
		@@ -820,7 +820,7 @@ func (t *Target) GetEvalContexts(ectx *hcl.EvalContext, block *hcl.Block, loadDe
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if !value.CanIterateElements() {
 | 
			
		||||
	if !value.Type().IsMapType() && !value.Type().IsObjectType() {
 | 
			
		||||
		return nil, errors.Errorf("matrix must be a map")
 | 
			
		||||
	}
 | 
			
		||||
	matrix := value.AsValueMap()
 | 
			
		||||
 
 | 
			
		||||
@@ -1051,6 +1051,14 @@ func TestHCLMatrixBadTypes(t *testing.T) {
 | 
			
		||||
	_, err := ParseFile(dt, "docker-bake.hcl")
 | 
			
		||||
	require.Error(t, err)
 | 
			
		||||
 | 
			
		||||
	dt = []byte(`
 | 
			
		||||
		target "default" {
 | 
			
		||||
			matrix = ["test"]
 | 
			
		||||
		}
 | 
			
		||||
		`)
 | 
			
		||||
	_, err = ParseFile(dt, "docker-bake.hcl")
 | 
			
		||||
	require.Error(t, err)
 | 
			
		||||
 | 
			
		||||
	dt = []byte(`
 | 
			
		||||
		target "default" {
 | 
			
		||||
			matrix = {
 | 
			
		||||
@@ -1061,6 +1069,16 @@ func TestHCLMatrixBadTypes(t *testing.T) {
 | 
			
		||||
	_, err = ParseFile(dt, "docker-bake.hcl")
 | 
			
		||||
	require.Error(t, err)
 | 
			
		||||
 | 
			
		||||
	dt = []byte(`
 | 
			
		||||
		target "default" {
 | 
			
		||||
			matrix = {
 | 
			
		||||
				1 = 2
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		`)
 | 
			
		||||
	_, err = ParseFile(dt, "docker-bake.hcl")
 | 
			
		||||
	require.Error(t, err)
 | 
			
		||||
 | 
			
		||||
	dt = []byte(`
 | 
			
		||||
		target "default" {
 | 
			
		||||
			matrix = {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user