Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
build: document electron goma usage and add the external binaries
- Loading branch information
1 parent
4324e4c
commit 4f653d7
Showing
4 changed files
with
85 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
goma_dir = rebase_path("//electron/external_binaries/goma") | ||
use_goma = true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
# Goma | ||
|
||
> Goma is a distributed compiler service for open-source projects such as | ||
> Chromium and Android. | ||
Electron has a deployment of a custom Goma Backend that we make available to | ||
all Electron Maintainers. See the [Access](#access) section below for details | ||
on authentication. | ||
|
||
## Enabling Goma | ||
|
||
Currently Electron Goma supports both Windows and Linux, we may add macOS | ||
support at some point in the future. If you are on a supported platform | ||
you can enable goma by importing the `goma.gn` config file when using `gn`. | ||
|
||
```bash | ||
gn gen out/Testing --args="import(\"//electron/build/args/testing.gn\") import(\"//electron/build/args/goma.gn\")" | ||
``` | ||
|
||
You must ensure that you do not have `cc_wrapper` configured, this means you | ||
can't use `sccache` or similar technology. | ||
|
||
Before you can use goma to build Electron you need to authenticate against | ||
the Goma service. You only need to do this once per-machine. | ||
|
||
```bash | ||
cd electron/external_binaries/goma | ||
goma_auth.py login | ||
``` | ||
|
||
Once authenticated you need to make sure the goma daemon is running on your | ||
machine. | ||
|
||
```bash | ||
cd electron/external_binaries/goma | ||
goma_ctl.py ensure_start | ||
``` | ||
|
||
## Building with Goma | ||
|
||
When you are using Goma you can run `ninja` with a substantially higher `j` | ||
value than would normally be supported by your machine. Please do not set | ||
a value higher than **300**, we monitor the goma system and users found to | ||
be abusing it with unreasonable concurrency will be de-activated. | ||
|
||
```bash | ||
ninja -C out/Testing electron -j 200 | ||
``` | ||
|
||
## Monitoring Goma | ||
|
||
If you access [http://localhost:8088](http://localhost:8088) on your local | ||
machine you can monitor compile jobs as they flow through the goma system. | ||
|
||
## Access | ||
|
||
For security and cost reasons access to Electron Goma is currently restricted | ||
to Electron Maintainers. If you want access please head to `#access-requests` in | ||
Slack and ping `@goma-squad` to ask for access. Please be aware that being a | ||
maintainer does not *automatically* grant access and access is determined on a | ||
case by case basis. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters