mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 18:13:42 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package bake
 | 
						|
 | 
						|
import (
 | 
						|
	"testing"
 | 
						|
 | 
						|
	"github.com/stretchr/testify/require"
 | 
						|
)
 | 
						|
 | 
						|
func TestParseHCL(t *testing.T) {
 | 
						|
	var dt = []byte(`
 | 
						|
	group "default" {
 | 
						|
		targets = ["db", "webapp"]
 | 
						|
	}
 | 
						|
 | 
						|
	target "db" {
 | 
						|
		context = "./db"
 | 
						|
		tags = ["docker.io/tonistiigi/db"]
 | 
						|
	}
 | 
						|
 | 
						|
	target "webapp" {
 | 
						|
		context = "./dir"
 | 
						|
		dockerfile = "Dockerfile-alternate"
 | 
						|
		args = {
 | 
						|
			buildno = "123"
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	target "cross" {
 | 
						|
		platforms = [
 | 
						|
			"linux/amd64",
 | 
						|
			"linux/arm64"
 | 
						|
		]
 | 
						|
	}
 | 
						|
 | 
						|
	target "webapp-plus" {
 | 
						|
		inherits = ["webapp", "cross"]
 | 
						|
		args = {
 | 
						|
			IAMCROSS = "true"
 | 
						|
		}
 | 
						|
	}
 | 
						|
	`)
 | 
						|
 | 
						|
	c, err := ParseHCL(dt)
 | 
						|
	require.NoError(t, err)
 | 
						|
 | 
						|
	require.Equal(t, 1, len(c.Group))
 | 
						|
	require.Equal(t, []string{"db", "webapp"}, c.Group["default"].Targets)
 | 
						|
 | 
						|
	require.Equal(t, 4, len(c.Target))
 | 
						|
	require.Equal(t, "./db", *c.Target["db"].Context)
 | 
						|
 | 
						|
	require.Equal(t, 1, len(c.Target["webapp"].Args))
 | 
						|
	require.Equal(t, "123", c.Target["webapp"].Args["buildno"])
 | 
						|
 | 
						|
	require.Equal(t, 2, len(c.Target["cross"].Platforms))
 | 
						|
	require.Equal(t, []string{"linux/amd64", "linux/arm64"}, c.Target["cross"].Platforms)
 | 
						|
}
 |