forked from pantsbuild/pants
-
Notifications
You must be signed in to change notification settings - Fork 0
/
pants.remote.toml
60 lines (54 loc) · 3.16 KB
/
pants.remote.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# For goals that you'd like to remote, first install the Google cloud CLI and then log in to an
# an account authorized to run the Pants project (you may need to ask a Pants committer for
# to authorize your account). Then, point to this config file and provide the oauth token like this:
#
# $ ./pants --pants-config-files=pants.remote.toml
# --remote-oauth-bearer-token-path=<(gcloud auth application-default print-access-token)
# --no-v1 --v2 test tests/python/pants_test/util:strutil
#
# Remoting does not work for every goal, so you should not permanently point to this TOML file, e.g.
# via an env var; only point to it when you want to remote a specific invocation.
[GLOBAL]
remote_execution = true
remote_execution_server = "remotebuildexecution.googleapis.com"
remote_store_server = "remotebuildexecution.googleapis.com"
# This file might not exist on your machine. If this default fails, run `find /usr -name '*.pem'`
# and override this value via the env var PANTS_REMOTE_CA_CERTS_PATH.
remote_ca_certs_path = "/usr/local/etc/openssl/cert.pem"
remote_instance_name = "projects/pants-remoting-beta/instances/default_instance"
remote_execution_extra_platform_properties = [
# This allows network requests, e.g. to resolve dependencies with Pex.
"dockerNetwork=standard",
"container-image=docker://gcr.io/pants-remoting-beta/rbe-remote-execution@sha256:ec94526d1aa0604b7f693a0b1fb224ca7822a0d821ce20dff50ec808cad597b6",
]
# This should correspond to the number of workers running in Google RBE. See
# https://console.cloud.google.com/apis/api/remotebuildexecution.googleapis.com/quotas?project=pants-remoting-beta&folder&organizationId&duration=PT6H.
process_execution_remote_parallelism = 32
# TODO: Temporarily disabling speculation until we're able to confirm that it never causes a
# negative performance impact.
process_execution_speculation_strategy = "none"
# p95 of RBE appears to be ~ 2 seconds, but we need to factor in local queue time which can be much longer, but no metrics yet.
process_execution_speculation_delay = 15
[python-setup]
# TODO(#7735): This config is not ideal, that we must specify the PATH for both local and remote
# platforms. This should be replaced by a proper mechanism to differentiate between the two.
interpreter_search_paths = [
# These are the interpreter paths we set up on the remote container, plus `/usr/bin`, so that
# pip can find `ld` if necessary.
"/pyenv-docker-build/versions/3.7.3/bin:/pyenv-docker-build/versions/3.6.8/bin:/pyenv-docker-build/versions/2.7.15/bin:/usr/bin",
# We include the host PATH and PEXRC values so that speculation still works.
# NOTE: These come after the remote paths. Putting them before the remote paths means generic
# bin dirs like /usr/bin will be on the PATH ahead of the pyenv dirs we actually want to use
# on the remote side. The /pyenv-docker-build/ paths are unlikely to exist on local systems,
# and so will not interfere with interpreter discovery there. This emphasizes
# that we should fix #7735, and not commingle the paths of two unrelated systems.
'<PATH>',
'<PEXRC>',
]
[python-native-code]
ld_flags = []
cpp_flags = []
[fmt]
per_target_caching = true
[lint]
per_target_caching = true