Migrating Chromium builds from Reclient to Siso¶
This document provides instructions on the configuration changes you need to make so that remote execution actions for your Chromium builds are sent to your EngFlow cluster by the Siso build tool instead of Reclient.
Supported platforms¶
Starting with Chromium 145 (Jan 2026), EngFlow supports remote execution for Chromium builds with Siso on Linux, macOS, and Windows.
Best practice for migration
Test these changes in your development branch before merging them into your main branch.
Step 1: Check out Chromium source code¶
Go to Get the Code: Checkout, Build, & Run Chromium and follow the installation instructions for your platform.
Step 2: Add custom variables to .gclient¶
-
Add the
custom_varsin the code sample below to yourchromium/.gclientfile. You need to do this once per checkout (i.e., per machine).chromium/.gclient Here’s a sample
chromium/.gclientfile with the abovecustom_varsadded:chromium/.gclient -
Edit
build/config/siso/backend_config/backend.starto remove Google-specific RE property labels by commenting outlabel:* - Run
gcloud syncagain. This updates the configuration in the source tree with the custom variables we specified in the previous step.
Step 3: Configure authentication¶
- From your EngFlow cluster's Build and Test UI, go to the Getting Started section in the sidebar, and follow the instructions to generate and download the
mTLScertificate. - Extract the contents of
engflow-mTLS.zip. - Add environment variables to the following files:
- To the absolute path of the
engflow.crtfile, add theRBE_tls_client_auth_certenvironment variable. - To the absolute path of the
engflow.keyfile, add theRBE_tls_client_auth_keyenvironment variable.
- To the absolute path of the
Step 4: Configure EngFlow RBE¶
To configure siso to send actions to your EngFlow cluster:
-
Skip this step if you’ve already added the EngFlow reclient_configs repo to your
DEPSfile.
Add the EngFlow reclient_configs repo to theDEPSfile as shown below. For consistency, consider pinning the repository to a particular commit by adding the@<your-commit-hash>suffix.DEPS -
In the
DEPSfile, add the below stanza to the end of thehooksvariable. This configuration will be applied when you rungclient syncin the next step. -
Run
gclient syncto check out the reclient_configs repo and generate configuration files. -
Run
gn args out/defaultand add the following lines: -
Run
siso ninja -C out/default base_unittests
This will send actions to execute remotely on workers in your EngFlow cluster.
Note
By default, siso falls back to local execution when actions fail remotely. For testing purposes, you can pass --strict_remote=true to ensure your build is using remote execution with EngFlow.
For production usage, we do not recommend setting --strict_remote=true because not all of Chromium can be built remotely.
Troubleshooting¶
The siso ninja -C out/default base_unittests command results in an auth error. How do I fix this?¶
This is commonly caused by a problem with the way you initially set up Chromium where it’s expecting to build against Google. Here's a sample error message:
| Bash | |
|---|---|
To fix this error:
- Verify that you've configured the correct cluster in the
<src>/build/config/siso/.sisoenvfile. - Verify environment variables from Step 3 are set by running
env | grep RBE_.
The siso ninja -C out/default base_unittests command results in execvp(../../buildtools/reclient_cfgs/chromium-browser-clang/clang_remote_wrapper, ...). How do I fix this?¶
This is a common error when building versions of Chromium older than 145, which are missing some configuration fixes.
To fix this error:
- Ensure that you have a checkout of Chromium 145 (or newer).
- If you're unable to upgrade, you can also try cherry-picking this CL.