mirror of https://github.com/docker/buildx.git
				
				
				
			Merge pull request #2237 from crazy-max/fix-bake-read-order
bake: fix definitions merge order
This commit is contained in:
		
						commit
						2c1f46450a
					
				| 
						 | 
				
			
			@ -292,13 +292,17 @@ func saveLocalStateGroup(dockerCli command.Cli, ref string, lsg localstate.State
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
func readBakeFiles(ctx context.Context, nodes []builder.Node, url string, names []string, stdin io.Reader, pw progress.Writer) (files []bake.File, inp *bake.Input, err error) {
 | 
			
		||||
	var lnames []string
 | 
			
		||||
	var rnames []string
 | 
			
		||||
	var lnames []string // local
 | 
			
		||||
	var rnames []string // remote
 | 
			
		||||
	var anames []string // both
 | 
			
		||||
	for _, v := range names {
 | 
			
		||||
		if strings.HasPrefix(v, "cwd://") {
 | 
			
		||||
			lnames = append(lnames, strings.TrimPrefix(v, "cwd://"))
 | 
			
		||||
			tname := strings.TrimPrefix(v, "cwd://")
 | 
			
		||||
			lnames = append(lnames, tname)
 | 
			
		||||
			anames = append(anames, tname)
 | 
			
		||||
		} else {
 | 
			
		||||
			rnames = append(rnames, v)
 | 
			
		||||
			anames = append(anames, v)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -317,7 +321,7 @@ func readBakeFiles(ctx context.Context, nodes []builder.Node, url string, names
 | 
			
		|||
			if url != "" {
 | 
			
		||||
				lfiles, err = bake.ReadLocalFiles(lnames, stdin, sub)
 | 
			
		||||
			} else {
 | 
			
		||||
				lfiles, err = bake.ReadLocalFiles(append(lnames, rnames...), stdin, sub)
 | 
			
		||||
				lfiles, err = bake.ReadLocalFiles(anames, stdin, sub)
 | 
			
		||||
			}
 | 
			
		||||
			return nil
 | 
			
		||||
		})
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,6 +24,7 @@ var bakeTests = []func(t *testing.T, sb integration.Sandbox){
 | 
			
		|||
	testBakeRemote,
 | 
			
		||||
	testBakeRemoteCmdContext,
 | 
			
		||||
	testBakeRemoteLocalOverride,
 | 
			
		||||
	testBakeLocalCwdOverride,
 | 
			
		||||
	testBakeRemoteCmdContextOverride,
 | 
			
		||||
	testBakeRemoteContextSubdir,
 | 
			
		||||
	testBakeRemoteCmdContextEscapeRoot,
 | 
			
		||||
| 
						 | 
				
			
			@ -173,6 +174,41 @@ EOT
 | 
			
		|||
	require.FileExists(t, filepath.Join(dirDest, "bar"))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func testBakeLocalCwdOverride(t *testing.T, sb integration.Sandbox) {
 | 
			
		||||
	bakeFile := []byte(`
 | 
			
		||||
target "default" {
 | 
			
		||||
	dockerfile-inline = <<EOT
 | 
			
		||||
FROM scratch
 | 
			
		||||
COPY foo /foo
 | 
			
		||||
EOT
 | 
			
		||||
}
 | 
			
		||||
`)
 | 
			
		||||
	cwdBakefile := []byte(`
 | 
			
		||||
target "default" {
 | 
			
		||||
	dockerfile-inline = <<EOT
 | 
			
		||||
FROM scratch
 | 
			
		||||
COPY bar /bar
 | 
			
		||||
EOT
 | 
			
		||||
}
 | 
			
		||||
`)
 | 
			
		||||
 | 
			
		||||
	dir := tmpdir(
 | 
			
		||||
		t,
 | 
			
		||||
		fstest.CreateFile("docker-bake.hcl", bakeFile, 0600),
 | 
			
		||||
		fstest.CreateFile("docker-bake-cwd.hcl", cwdBakefile, 0600),
 | 
			
		||||
		fstest.CreateFile("bar", []byte("bar"), 0600),
 | 
			
		||||
	)
 | 
			
		||||
	dirDest := t.TempDir()
 | 
			
		||||
 | 
			
		||||
	cmd := buildxCmd(sb, withDir(dir), withArgs("bake", "--file", "docker-bake.hcl", "--file", "cwd://docker-bake-cwd.hcl", "--progress=plain", "--set", "*.output=type=local,dest="+dirDest))
 | 
			
		||||
	dt, err := cmd.CombinedOutput()
 | 
			
		||||
	require.NoError(t, err, string(dt))
 | 
			
		||||
	require.Contains(t, string(dt), `#1 [internal] load local bake definitions`)
 | 
			
		||||
	require.Contains(t, string(dt), `#1 reading docker-bake.hcl`)
 | 
			
		||||
	require.Contains(t, string(dt), `#1 reading docker-bake-cwd.hcl`)
 | 
			
		||||
	require.FileExists(t, filepath.Join(dirDest, "bar"))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func testBakeRemoteCmdContext(t *testing.T, sb integration.Sandbox) {
 | 
			
		||||
	bakefile := []byte(`
 | 
			
		||||
target "default" {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue