|
5 | 5 |
|
6 | 6 | Electron has a deployment of a custom Goma Backend that we make available to |
7 | 7 | all Electron Maintainers. See the [Access](#access) section below for details |
8 | | -on authentication. |
| 8 | +on authentication. There is also a `cache-only` Goma endpoint that will be |
| 9 | +used by default if you do not have credentials. Requests to the cache-only |
| 10 | +Goma will not hit our cluster, but will read from our cache and should result |
| 11 | +in significantly faster build times. |
9 | 12 |
|
10 | 13 | ## Enabling Goma |
11 | 14 |
|
12 | | -Currently Electron Goma supports Windows, Linux, and macOS. If you are |
13 | | -on a supported platform you can enable goma by importing the `goma.gn` config |
14 | | -file when using `gn`. |
| 15 | +Currently the only supported way to use Goma is to use our [Build Tools](https://github.com/electron/build-tools). |
| 16 | +Goma configuration is automatically included when you set up `build-tools`. |
15 | 17 |
|
16 | | -```bash |
17 | | -gn gen out/Testing --args="import(\"//electron/build/args/testing.gn\") import(\"//electron/build/args/goma.gn\")" |
18 | | -``` |
19 | | - |
20 | | -You must ensure that you do not have `cc_wrapper` configured, this means you |
21 | | -can't use `sccache` or similar technology. |
22 | | - |
23 | | -Before you can use goma to build Electron you need to authenticate against |
24 | | -the Goma service. You only need to do this once per-machine. |
25 | | - |
26 | | -```bash |
27 | | -cd electron/external_binaries/goma |
28 | | -./goma_auth.py login |
29 | | -``` |
30 | | - |
31 | | -Once authenticated you need to make sure the goma daemon is running on your |
32 | | -machine. |
33 | | - |
34 | | -```bash |
35 | | -cd electron/external_binaries/goma |
36 | | -./goma_ctl.py ensure_start |
37 | | -``` |
| 18 | +If you are a maintainer and have access to our cluster, please ensure that you run |
| 19 | +`e init` with `--goma=cluster` in order to configure `build-tools` to use |
| 20 | +the Goma cluster. If you have an existing config, you can just set `"goma": "cluster"` |
| 21 | +in your config file. |
38 | 22 |
|
39 | 23 | ## Building with Goma |
40 | 24 |
|
41 | 25 | When you are using Goma you can run `ninja` with a substantially higher `j` |
42 | 26 | value than would normally be supported by your machine. |
43 | 27 |
|
44 | | -Please do not set a value higher than **300** on Windows or Linux and |
45 | | -**80** on macOS, we monitor the goma system and users found to be abusing |
| 28 | +Please do not set a value higher than **200** on Windows or Linux and |
| 29 | +**50** on macOS. We monitor Goma system usage, and users found to be abusing |
46 | 30 | it with unreasonable concurrency will be de-activated. |
47 | 31 |
|
48 | 32 | ```bash |
49 | 33 | ninja -C out/Testing electron -j 200 |
50 | 34 | ``` |
51 | 35 |
|
| 36 | +If you're using `build-tools`, appropriate `-j` values will automatically |
| 37 | +be used for you. |
| 38 | + |
52 | 39 | ## Monitoring Goma |
53 | 40 |
|
54 | 41 | If you access [http://localhost:8088](http://localhost:8088) on your local |
55 | 42 | machine you can monitor compile jobs as they flow through the goma system. |
56 | 43 |
|
57 | 44 | ## Access |
58 | 45 |
|
59 | | -For security and cost reasons access to Electron Goma is currently restricted |
| 46 | +For security and cost reasons, access to Electron's Goma cluster is currently restricted |
60 | 47 | to Electron Maintainers. If you want access please head to `#access-requests` in |
61 | 48 | Slack and ping `@goma-squad` to ask for access. Please be aware that being a |
62 | 49 | maintainer does not *automatically* grant access and access is determined on a |
63 | 50 | case by case basis. |
| 51 | + |
| 52 | +## Uptime / Support |
| 53 | + |
| 54 | +We have automated monitoring of our Goma cluster and cache at https://status.notgoma.com |
| 55 | + |
| 56 | +We do not provide support for usage of Goma and any issues raised asking for help / having |
| 57 | +issues will _probably_ be closed without much reason, we do not have the capacity to handle |
| 58 | +that kind of support. |
0 commit comments