id | title |
---|---|
remote_execution |
Remote Execution |
Buck2 can use services that expose Bazel's remote execution API in order to run actions remotely.
Buck2 projects have been successfully tested for remote execution against EngFlow and BuildBarn. Sample project configurations for those providers are available under examples/remote_execution.
Configuration for remote execution can be found under [buck2_re_client]
in .buckconfig
.
Keys supported include:
engine_address
- address to your RE's engine.action_cache_address
- address to your action cache endpoint.cas_address
- address to your content-addressable storage (CAS) endpoint.tls_ca_certs
- path to a CA certificates bundle. This must be PEM-encoded. If none is set, a default bundle will be used. This path contain environment variables using shell interpolation syntax (i.e. $VAR). They will be substituted before reading the file.tls_client_cert
- path to a client certificate (and intermediate chain), as well as its associated private key. This must be PEM-encoded. This path can contain environment variables using shell interpolation syntax (i.e. $VAR). They will be substituted before reading the file.http_headers
- HTTP headers to inject in all requests to RE. This is a comma-separated list ofHeader: Value
pairs. Minimal validation of those headers is done here. This can contain environment variables using shell interpolation syntax ($VAR). They will be substituted before reading the file.
Buck2 uses SHA256
for all its hashing by default. If your RE engine requires something else, this can be configured in .buckconfig
as follows:
[buck2]
# Accepts BLAKE3, SHA1, or SHA256
digest_algorithms = BLAKE3
Next, your build will need an execution platform that specifies how and where actions should be executed. For a sample platform definition that sets up an execution platform to utilize RE, take a look at the EngFlow example.
To enable remote execution, configure the following fields in CommandExecutorConfig as follows:
remote_enabled
- set toTrue
.local_enabled
- set toTrue
if you also want to run actions locally.use_limited_hybrid
- set toFalse
unless you want to exclusively run remotely when possible.remote_execution_properties
- other additional properties.- If the RE engine requires a container image, this can be done by setting
container-image
to an image URL, as is done in the example above.
- If the RE engine requires a container image, this can be done by setting