This commit adds the IDE-integrated breakpoint debugger based on walker.
Now buildx provides DAP (Debug Adapter Protocol) API to IDEs so DAP-aware IDEs
can call buildx and allow users to perform breakpoint-based debugging on the
IDE's UI/UX.
Signed-off-by: Kohei Tokunaga <ktokunaga.mail@gmail.com>
This commit adds a set of commands to monitor for enabling breakpoint debugger.
This is implemented based on the walker utility for step-by-step LLB inspection.
For each vertex and breakpoint, monitor calls Solve API so the user can enter to
the debugger container on each vertex for inspection.
User can enter to the breakpoint debugger mode by --invoke=debug-step flag.
Signed-off-by: Kohei Tokunaga <ktokunaga.mail@gmail.com>
This commit adds two fields to the response of Inspect API.
- Definition: Build definition of the first build executed by Build API.
- CurrentDefinition: Build definition of the latest build executed by Build or
Solve API.
The client can use these information for debugging the build deeply.
Signed-off-by: Kohei Tokunaga <ktokunaga.mail@gmail.com>
This commit adds Solve API to the controller. This receives a build definition,
performs that build using ResultHandler held by that session. After Solve
completes, the client can debug the result using other APIs including Invoke.
Note that the ResultHandle provided by Solve overwrites the ResultHandle
previously stored in that session (possibly generated by the past Build or Solve
API call).
Using this API, user can perform build-and-debugging loop on the same session.
Signed-off-by: Kohei Tokunaga <ktokunaga.mail@gmail.com>
This commit adds BuildOptions.Debug that allows skipping the evaluation of the
ResultHandler. The ResultHandler is created without evaluated, so calling Build
API with this flag always returns an error with the reference ID of that
(errored) ResultHandler. Note that this state of ResultHandler doesn't contain
result nor error so any operation on that ResultHandler will result in an error.
Following commit will allow user to do further operations (e.g. evaluation of a
bulid) using the buildkit client held by that ResultHandler.
Signed-off-by: Kohei Tokunaga <ktokunaga.mail@gmail.com>
Use buildkit's parsing of entitlements to make sure that accepted
values match what's accepted by BuildKit.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This means that we can run our docker-container tests in parallel again,
which can help speed up our test runs by a *significant* amount.
Signed-off-by: Justin Chadwell <me@jedevc.com>
Although a builder from the store cannot be created unless
it has a valid name, this is not the case for a Docker context.
We should skip name validation when checking a node from the
store and fall back to finding one from Docker context instead.
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
We need to resolve the strip the cwd:// prefix before attempting to
resolve the dockerfile. Otherwise, we'll get the cwd:// prefix in the
dockerfile name, which isn't stripped out later.
Signed-off-by: Justin Chadwell <me@jedevc.com>