Commit Graph

1693 Commits (37763ec29f6226a3584ba1a87eb5347e1d40c43c)
 

Author SHA1 Message Date
Kohei Tokunaga 37763ec29f
Support breakpoint debugger integrated to IDEs
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>
2 years ago
Kohei Tokunaga bcf21dee44
monitor: support step-by-step breakpoint debugger
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>
2 years ago
Kohei Tokunaga b1ae24df65
Add walker utility usable for debugging LLB
Walker is an utility for inspecting and debugging each vertex in an LLB graph.

Signed-off-by: Kohei Tokunaga <ktokunaga.mail@gmail.com>
2 years ago
Kohei Tokunaga 4c730ee96b
Enable to get build definition from Inspect API
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>
2 years ago
Kohei Tokunaga f72ea677f1
Add Solve API for performing a build on a build definition
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>
2 years ago
Kohei Tokunaga de693264a8
Add BuildOptions.Debug for allowing lazy evaluation of ResultHandler
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>
2 years ago
Justin Chadwell 47e34f2684
Merge pull request #1813 from jedevc/oci-export-on-containerd 2 years ago
Justin Chadwell 3d981be4ad
Merge pull request #1850 from ktock/monitor-longhelp 2 years ago
CrazyMax 5d94b0fcc7
Merge pull request #1866 from crazy-max/bump-compose
vendor: github.com/compose-spec/compose-go v1.14.0
2 years ago
CrazyMax 569c66fb62
Merge pull request #1867 from crazy-max/bump-testify
vendor: github.com/stretchr/testify v1.8.4
2 years ago
CrazyMax 93f7fbdd78
Merge pull request #1865 from crazy-max/bump-semver
vendor: github.com/Masterminds/semver/v3 v3.2.1
2 years ago
Tõnis Tiigi ea06685c11
Merge pull request #1858 from potherca-contrib/fix/typo-Shortand
Fix typo "Shortand" -> "Shorthand"
2 years ago
Ben Peachey eaba4fa9e6
Update docs with result from `make docs` command.
Signed-off-by: Ben Peachey <potherca@gmail.com>
2 years ago
CrazyMax 99e3882e2a
Merge pull request #1841 from crazy-max/desktop
build: display build details link
2 years ago
CrazyMax 0a2f35970c
build: display build details link
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2 years ago
CrazyMax ab5f5e4169
build: fix quiet mode
We are using the quiet flag option and we are not taking
progress quiet mode into account

Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2 years ago
Justin Chadwell 696770d29c
Merge pull request #1840 from jedevc/fix-check-path-for-bake-cmd-context 2 years ago
CrazyMax b47b4e5957
vendor: github.com/stretchr/testify v1.8.4
full diff https://github.com/stretchr/testify/compare/v1.8.2...v1.8.4

Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2 years ago
CrazyMax 9a125afba0
vendor: github.com/compose-spec/compose-go v1.14.0
https: //github.com/compose-spec/compose-go/compare/v1.13.4...v1.14.0
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2 years ago
Justin Chadwell d34103b0d9 bake: fix potential context entitlements escape
Signed-off-by: Justin Chadwell <me@jedevc.com>
2 years ago
Justin Chadwell c820350b5e tests: refactor cmd helpers to allow configuring cwd, etc
Signed-off-by: Justin Chadwell <me@jedevc.com>
2 years ago
Justin Chadwell 61a7854659 tests: add bake test for remote subdir context
Fixed in 12b6a3ad9a, but now we have
regression tests! So we can add a check that we don't break this
behavior again.

Signed-off-by: Justin Chadwell <me@jedevc.com>
2 years ago
Justin Chadwell e859ebc12e tests: add bake test for remote cmd context override
Signed-off-by: Justin Chadwell <me@jedevc.com>
2 years ago
Justin Chadwell ef997fd6d0 bake: fix BAKE_CMD_CONTEXT relative path resolution
Signed-off-by: Justin Chadwell <me@jedevc.com>
2 years ago
Justin Chadwell 76c96347ff tests: add basic remote bake context test
Signed-off-by: Justin Chadwell <me@jedevc.com>
2 years ago
Justin Chadwell 48d7dafbd5 git: update gitutil test utilities
- Adds a new GitServeHTTP function to start an http server to serve a
  target git repository.
- Adds a new GitDir helper method to get the path to the .git
  directory
- Updates the GitAdd method to take a variable number of files

Signed-off-by: Justin Chadwell <me@jedevc.com>
2 years ago
Justin Chadwell d03e93f6f1 test: tmpdir can be a test helper
Signed-off-by: Justin Chadwell <me@jedevc.com>
2 years ago
Justin Chadwell fcb7810a38
Merge pull request #1854 from crazy-max/inspect-features 2 years ago
CrazyMax 459d94bdf1
vendor: github.com/Masterminds/semver/v3 v3.2.1
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2 years ago
Justin Chadwell 7cef021a8a
Merge pull request #1804 from jedevc/fixup-solve 2 years ago
Justin Chadwell c6db4cf342 build: clarify NewResultHandle comment
Signed-off-by: Justin Chadwell <me@jedevc.com>
2 years ago
CrazyMax 6c9436fbd5
inspect: display builder features
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2 years ago
Justin Chadwell a906149930
Merge pull request #1862 from jedevc/update-contributing-tests
docs: update CONTRIBUTING.md with specific test notes
2 years ago
Justin Chadwell af328fe413 docs: update CONTRIBUTING.md with specific test notes
Signed-off-by: Justin Chadwell <me@jedevc.com>
2 years ago
Justin Chadwell 183a73abae build: docker exporter should instead use oci with containerd
Signed-off-by: Justin Chadwell <me@jedevc.com>
2 years ago
Justin Chadwell b7f0b3d763 build: clear exports for secondary solve request
Signed-off-by: Justin Chadwell <me@jedevc.com>
2 years ago
Justin Chadwell 5b27d5a9f6 build: cleanup res if returned in basic build
In practice, this shouldn't happen, but the check is good to include
anyways.

Signed-off-by: Justin Chadwell <me@jedevc.com>
2 years ago
Ben Peachey 8f24c58f4d
Fix typo in commands/build.go and docs/reference/buildx_build.md
`Shortand` -> `Shorthand`

Signed-off-by: Ben Peachey <potherca@gmail.com>
2 years ago
Justin Chadwell cd1648192e build: rename ResultContext to ResultHandle
Signed-off-by: Justin Chadwell <me@jedevc.com>
2 years ago
Justin Chadwell 8d822fb06c build: move main solve request into main gateway call
Now, we always perform the full solve request in the main gateway call.
This ensures that progress works properly, and makes the lifetime
semantics much clearer.

NewResultContext abstracts the details of a successful/failed build, to
always return a single ResultContext, even though the details of how a
gateway is created is different:
- For a failed build, we can just keep the gateway open.
- For a successful build, we immediately open another gateway and
  re-evaluate the build definition in that gateway. This should give an
  instant cache hit (since the build was just successful).

Signed-off-by: Justin Chadwell <me@jedevc.com>
2 years ago
CrazyMax 0758a9b75d
Merge pull request #1856 from crazy-max/history-feature-update
driver: update history api check
2 years ago
CrazyMax f8fa526678
driver: update history api check
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2 years ago
Tõnis Tiigi 4abff3ce12
Merge pull request #1852 from jedevc/vendor-buildkit-master
vendor: update buildkit to master@c36941f4a10e
2 years ago
CrazyMax e7034f66bc
Merge pull request #1846 from crazy-max/history-capability
driver: check history capability
2 years ago
CrazyMax 8c65e4fc1d
driver: add context to Features interface
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2 years ago
CrazyMax d196ac347e
driver: cache features
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2 years ago
CrazyMax 9b723ece46
driver: check history capability
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2 years ago
Justin Chadwell 5e2f8bd64a
Merge pull request #1853 from jedevc/logrus-show-error 2 years ago
Justin Chadwell 5788ab33d2 logutil: print error from WithError if found
Signed-off-by: Justin Chadwell <me@jedevc.com>
2 years ago
CrazyMax f1788002e1
Merge pull request #1851 from crazy-max/test-flow
test: update workflow
2 years ago