tests: add basic remote bake context test

Signed-off-by: Justin Chadwell <me@jedevc.com>
This commit is contained in:
Justin Chadwell 2023-05-25 13:58:10 +01:00
parent 48d7dafbd5
commit 76c96347ff
2 changed files with 54 additions and 0 deletions

53
tests/bake.go Normal file
View File

@ -0,0 +1,53 @@
package tests
import (
"path/filepath"
"testing"
"github.com/containerd/continuity/fs/fstest"
"github.com/docker/buildx/util/gitutil"
"github.com/moby/buildkit/util/testutil/integration"
"github.com/stretchr/testify/require"
)
func bakeCmd(sb integration.Sandbox, dir string, args ...string) (string, error) {
args = append([]string{"bake", "--progress=quiet"}, args...)
cmd := buildxCmd(sb, args...)
cmd.Dir = dir
out, err := cmd.CombinedOutput()
return string(out), err
}
var bakeTests = []func(t *testing.T, sb integration.Sandbox){
testBakeRemote,
}
func testBakeRemote(t *testing.T, sb integration.Sandbox) {
bakefile := []byte(`
target "default" {
dockerfile-inline = <<EOT
FROM scratch
COPY foo /foo
EOT
}
`)
dir := tmpdir(
t,
fstest.CreateFile("docker-bake.hcl", bakefile, 0600),
fstest.CreateFile("foo", []byte("foo"), 0600),
)
dirDest := t.TempDir()
git, err := gitutil.New(gitutil.WithWorkingDir(dir))
require.NoError(t, err)
gitutil.GitInit(git, t)
gitutil.GitAdd(git, t, "docker-bake.hcl", "foo")
gitutil.GitCommit(git, t, "initial commit")
addr := gitutil.GitServeHTTP(git, t)
out, err := bakeCmd(sb, dir, addr, "--set", "*.output=type=local,dest="+dirDest)
require.NoError(t, err, out)
require.FileExists(t, filepath.Join(dirDest, "foo"))
}

View File

@ -21,6 +21,7 @@ func init() {
func TestIntegration(t *testing.T) {
var tests []func(t *testing.T, sb integration.Sandbox)
tests = append(tests, buildTests...)
tests = append(tests, bakeTests...)
tests = append(tests, inspectTests...)
tests = append(tests, lsTests...)
testIntegration(t, tests...)