From 88359c58a072099f45dadc33141edba4f6dce217 Mon Sep 17 00:00:00 2001 From: Tonis Tiigi Date: Thu, 15 Jan 2026 17:10:59 -0800 Subject: [PATCH] tests: add TestBakeDisableEnvLookup Signed-off-by: Tonis Tiigi --- tests/bake.go | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/tests/bake.go b/tests/bake.go index 5707c8cf8..dd50f4f05 100644 --- a/tests/bake.go +++ b/tests/bake.go @@ -82,6 +82,7 @@ var bakeTests = []func(t *testing.T, sb integration.Sandbox){ testBakeCheckCallOutput, testBakeExtraHosts, testBakeFileFromEnvironment, + testBakeDisableEnvLookup, } func testBakePrint(t *testing.T, sb integration.Sandbox) { @@ -173,6 +174,74 @@ RUN echo "Hello ${HELLO}" } } +func testBakeDisableEnvLookup(t *testing.T, sb integration.Sandbox) { + testCases := []struct { + name string + f string + dt []byte + }{ + { + name: "HCL", + f: "docker-bake.hcl", + dt: []byte(` +variable "HELLO" { + default = "fallback" +} + +target "build" { + args = { + HELLO = HELLO + } +} +`), + }, + { + name: "Compose", + f: "compose.yml", + dt: []byte(` +services: + build: + build: + context: . + args: + HELLO: ${HELLO:-fallback} +`), + }, + } + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + dir := tmpdir( + t, + fstest.CreateFile(tc.f, tc.dt, 0600), + fstest.CreateFile("Dockerfile", []byte(` +FROM busybox +ARG HELLO +RUN echo "Hello ${HELLO}" +`), 0600), + ) + + cmd := buildxCmd( + sb, + withDir(dir), + withArgs("bake", "--print", "build"), + withEnv( + "BUILDX_BAKE_DISABLE_VARS_ENV_LOOKUP=1", + "HELLO=fromenv", + ), + ) + stdout := bytes.Buffer{} + stderr := bytes.Buffer{} + cmd.Stdout = &stdout + cmd.Stderr = &stderr + require.NoError(t, cmd.Run(), stdout.String(), stderr.String()) + + require.Contains(t, stdout.String(), `"HELLO": "fallback"`) + require.NotContains(t, stdout.String(), "fromenv") + }) + } +} + func testBakePrintSensitive(t *testing.T, sb integration.Sandbox) { testCases := []struct { name string