Merge pull request #3478 from crazy-max/fix-tar-output

build: create parent directories for tar output in lazy writer
This commit is contained in:
Tõnis Tiigi
2025-11-05 16:42:44 -08:00
committed by GitHub
3 changed files with 39 additions and 8 deletions
+3 -1
View File
@@ -1359,17 +1359,19 @@ target "default" {
dirDest := t.TempDir()
envs := []string{"BUILDX_METADATA_PROVENANCE=" + metadataMode}
outFlag := "default.output=type=docker"
if sb.DockerAddress() == "" {
// there is no Docker atm to load the image
outFlag += ",dest=" + dirDest + "/image.tar"
envs = append(envs, "BUILDX_BAKE_ENTITLEMENTS_FS=0")
}
cmd := buildxCmd(
sb,
withDir(dir),
withArgs("bake", "--metadata-file", filepath.Join(dirDest, "md.json"), "--set", outFlag),
withEnv("BUILDX_METADATA_PROVENANCE="+metadataMode),
withEnv(envs...),
)
out, err := cmd.CombinedOutput()
require.NoError(t, err, string(out))
+3 -2
View File
@@ -417,10 +417,11 @@ func testBuildLocalExport(t *testing.T, sb integration.Sandbox) {
func testBuildTarExport(t *testing.T, sb integration.Sandbox) {
dir := createTestProject(t)
out, err := buildCmd(sb, withArgs(fmt.Sprintf("--output=type=tar,dest=%s/result.tar", dir), dir))
outdir := path.Join(dir, "out")
out, err := buildCmd(sb, withArgs(fmt.Sprintf("--output=type=tar,dest=%s/result.tar", outdir), dir))
require.NoError(t, err, string(out))
dt, err := os.ReadFile(fmt.Sprintf("%s/result.tar", dir))
dt, err := os.ReadFile(fmt.Sprintf("%s/result.tar", outdir))
require.NoError(t, err)
m, err := testutil.ReadTarToMap(dt, false)
require.NoError(t, err)