Siso environment variables.

Siso uses the following environment variables for configuration or flag defaults. In addition to SISO_* variables, Siso partially supports RBE_* variables for Reclient compatibility, and NINJA_* variables for Ninja compatibility.

Cloud control

SISO_PROJECT

SISO_PROJECT sets the default value of --project, to specify Google Cloud Project.

Remote exec API control

SISO_REAPI_INSTANCE

SISO_REAPI_INSTANCE sets the default value of -reapi_instance, to specify RE API instance name.

SISO_REAPI_ADDRESS

SISO_REAPI_ADDRESS sets the default value of -reapi_address, to specify RE API service address.

SISO_REAPI_CAS_ADDRESS

SISO_REAPI_CAS_ADDRESS sets the default value of -reapi_cas_address, to specify RE API content addressable storage service address.

RBE_service_no_security

RBE_service_no_security sets the default value of -reapi_insecure, when using RE API with no authentication. (reclient compat)

RBE_tls_client_auth_cert and RBE_tls_client_auth_key

RBE_tls_clietn_auth_cert and RBE_tls_client_auth_key sets the default values of -reapi_tls_client_auth_cert and -reapi_tls_client_auth_key, respectively, when to use mTLS authentication. (reclient compat)

RBE_tls_ca_cert

RBE_tls_ca_cert sets the default value of -reapi_tls_ca_cert to specify Root CA Certificates file. (reclient compat)

Resource control

SISO_LIMITS

SISO_LIMITS can control Siso's resource semaphore. Comma separated key value pairs in the form of key=value for experiments.

e.g. limit the local/remote concurrencies to 10/100 respectively. SISO_LIMITS=local=10,remote=100

  • step: maximum number of concurrent steps.
  • preproc: maximum number of concurrent preprocesses.
  • scandeps: maximum number of concurrent scandeps.
  • local: maximum number of concurrent local executions. same with --local_jobs
  • fastlocal: maximum number of local executions when local is idle even if step is remote executable.
  • startlocal: maximum initial steps to run locally even if step is remote executable.
  • remote: maximum number of concurrent remote executions. same with --remote_jobs
  • rewrap: maximum number of concurrent use_remote_exec_wrapper steps.
  • cache: maximum number of concurrent exec cache lookups.
  • thread: maximum number of threads.

NINJA_CORE_MULTIPLIER and NINJA_CORE_LIMIT

NINJA_CORE_MULTIPLIER and NINJA_CORE_LIMIT are used to define default of rewrap's limit for Reclient compatibility.

Feature control

SISO_CREDENTIAL_HELPER

SISO_CREDENTIAL_HELPER sets the default value of -credential_helper. It specifies a path to a credential helper program. See https://github.com/EngFlow/credential-helper-spec/blob/main/spec.md See also Siso authentication.

RBE_remote_disabled

RBE_remote_disabled is used to decide offline mode or not. (reclient compat)

TERM

TERM is used to detect smart terminal. dump or dump-emacs-ansi are not smart terminal.

NO_COLOR

NO_COLOR is used to disable colorted text output.

SISO_FSMONITOR

SISO_FSMONITOR is a path of file system monitoring tool. Currently watchman is supported. (experimental).

SISO_EXPERIMENTS

SISO_EXPERIMENTS is comma separated feature names. See build/experiments.go for available experiment features. The available experiments will change in future versions.

Monitoring

SISO_BUILD_ID

SISO_BUILD_ID sets the default value of --build_id, to identify the build process. Used for tool_invocation_id of remote apis, and build_id label of Cloud logging resources.

SISO_COLLECTOR_ADDRESS

SISO_COLLECTOR_ADDRESS sets the default value of --collector_address to have collector:

  1. start if the flag is set.
  2. use correct address or unix socket.

User does not need to touch this flag as this flag is set by depot_tools's autoninja.

RBE_metrics_project

RBE_metrics_project sets the default value of -metrics_project, to specify Google Cloud Project for cloud monitoring. (reclient compat)

RBE_metrics_labels

RBE_metrics_labels sets the default value of -metrics_labels, which is comma separated arbitrary key value pairs in the form key=value to be added for cloud monitoring metrics. (reclient compat)

Reclient support

The following environment variables are supported for reclient mode. See https://github.com/bazelbuild/reclient/blob/main/docs/cmd-line-flags.md

RBE_server_address

RBE_exec_timeout

RBE_reclient_timeout

RBE_exec_strategy

RBE_compare

RBE_num_local_reruns

RBE_num_remote_reruns