Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This breaks some assumptions for clients and breaks "docker buildx dap build", which we are relying on for debugging work.
Before the change this is also technically solving multiple times, even though the subsequent solves are cached.
The main culprit of unlazying the build is the test runner, which needs to run commands and inspect filesystem state to return errors.
With this change the test runner is now executed as part of the normal LLB graph.
All checks occur inside a buildkit container.
The frontend now has an extra set of subcommands for executing certain checks. The frontend binary gets mounted into the test container and it executes those subcommands to perform the various checks.
In order to preserve source mapping each test check is run in separate exec ops.: