Skip to content
Documentation

Docs / Adapter commands / Buck2

Buck2 adapter

Reuse Buck2 build results through a shared REAPI cache while the tool keeps control of task identities and local execution.

Command
boringcache buck2
Protocol
REAPI gRPC action cache and content-addressable store; cache only
Action
mode: buck2

How the adapter works

Native client configuration

The adapter supplies a generated Buck2 configuration file. Native, Action, and Docker builds use the stable boringcache daemon directory by default. Native wrapped commands serialize access to that directory and stop its daemon before cache shutdown. Set isolation-dir to choose another stable name; changing it changes Buck2 action keys. Optional config-path chooses a separate generated file; relative native paths use the repo-plan directory. Docker requires an absolute container path. Project execution platforms must permit action-cache uploads and cache queries.

Shared cache lifecycle

The adapter selects the cache tag, starts a loopback REAPI endpoint, runs the client, and drains cache writes before shutdown. A cache miss runs the task locally.

Read and write policy

Read-only runs do not publish cache entries. Trusted writable runs may publish. Unknown or misplaced adapter options fail before cache startup.

Set up Buck2

Commit this configuration and run boringcache buck2. Omit command when the Action should prepare caching for several later commands. The adapter supplies a generated Buck2 configuration file. Native, Action, and Docker builds use the stable boringcache daemon directory by default. Native wrapped commands serialize access to that directory and stop its daemon before cache shutdown. Set isolation-dir to choose another stable name; changing it changes Buck2 action keys. Optional config-path chooses a separate generated file; relative native paths use the repo-plan directory. Docker requires an absolute container path. Project execution platforms must permit action-cache uploads and cache queries.

workspace = "my-org/my-project"

[adapters.buck2]
tag = "buck2-build"
command = ["buck2", "build", "//..."]

Before the first run

  • Install the project’s Buck2 version before running the adapter.
  • Review boringcache buck2 --dry-run --json before the first build.
  • Remote execution is not provided; use an empty REAPI instance name.

Building inside Docker? Follow the Docker REAPI tool-cache setup to select this tool, its cache tag, and its read/write policy.

Use the same adapter in GitHub Actions

A committed adapter command runs in this Action step. Without one, the Action prepares caching for later tool commands and removes its temporary configuration after stopping the client and cache service.

.github/workflows/ci.yml
- uses: boringcache/one@696d081c557c070471a175d72aa67d27709a3f31 # v1.40.0
  with:
    trust-policy: auto
    mode: buck2

Approve the repository through Connect CI and grant the job contents: read and id-token: write. The Action uses that Machine connection. Pull requests restore by default; trusted jobs may publish. See the authentication example in the GitHub Actions reference for scoped credentials when OIDC is unavailable.

GitHub Actions reference

Benchmarks

Native client cold and warm cache qualification is separate from an OSS project benchmark. No project speedup is claimed for this managed adapter.

Tool reference

Check the tool's own reference when you need cache-key rules, build settings, or version-specific behavior.

All adapter commands

Compare every supported command, protocol, and Action mode in one place.

Adapter command index →

Need help or found something unclear? Open an issue or browse the CLI repo.