Move compatibility-releases to a single job that reuses the
integration test image flow from the main test workflow.
Add hack/test support for injecting a buildkitd binary and add a
dedicated hack/test-compatibility-releases wrapper for the release
sweep.
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
One should not use their regular docker credentials here
but make a special config file with only public readonly
token inside.
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
This allows running Dockerfile tests so that the Dockerfile
version and the BuildKit version are from different commits so
that we can test that old Dockerfile releases remain compatible
with the latest BuildKit.
The tests are based on the commit of the Dockerfile frontend as
we can't expect that new test would work on old frontends. In future
we might consider doing it the other way as well but then we need
a way to mark tests that can be ignored if they are not expected to
pass because of a new feature dependency.
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
If we try and run the integration tests with `-race` set, `hack/test`
correctly prompts us to also set `CGO_ENABLED`.
However, this value only gets set during build, and not during the
actual test run, which spawns the following error:
=== Errors
go: -race requires cgo; enable cgo by setting CGO_ENABLED=1
DONE 0 tests, 1 error in 0.002s
To resolve this, we need to propogate the value of `CGO_ENABLED` into
the created test containers, so that we can actually run these tests
properly.
Signed-off-by: Justin Chadwell <me@jedevc.com>
This introduces new `BUILDFLAGS`, `VERIFYFLAGS`, and `CGO_ENABLED` build-args,
which can be used to change how buildkitd is compiled.
This, for example, can be used to enable the go data race detector during
integration testing:
CGO_ENABLED=1 BUILDFLAGS="-race" TESTFLAGS="-v -test.run=TestClientGatewayIntegration/TestClientGatewaySolve" TESTPKGS=./client ./hack/test integration
This additionally introduces a new `make test-race` target, which
simplifies how to run all tests with the race detector.
Signed-off-by: Alex Couture-Beil <alex@earthly.dev>
This introduces a new `make test-race` target, which will compile
buildkitd using the `go build -race` flag, which is useful for detecting
data races.
Signed-off-by: Alex Couture-Beil <alex@earthly.dev>
This consists of just the base MergeOp with support for merging LLB
results that include deletions using hardlinks as the efficient path
and copies as fallback.
Signed-off-by: Erik Sipsma <erik@sipsma.dev>
Experimental name confuses users as backwards compatibility
rules are different for other tools called experimental.
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>