Skip to content

Environment

The job can define environment variables for the device. The variables are made available in the test shell environment and can be referenced in test scripts then.

Environment variables defined in the job will override environment variables of the same name defined in the device dictionary.

LAVA also writes a small set of metadata into the same overlay environment file. These LAVA_* variables are sourced by the test shell after the job and device environment, so they take precedence if a name clashes.

Do not confuse these with the bootloader placeholders such as {LAVA_JOB_ID} documented in boot common. Those are substituted into boot commands on the dispatcher, not exported into the DUT test shell.

LAVA-injected variables

Variable Description
LAVA_JOB_ID Numeric job ID assigned by the scheduler
LAVA_DISPATCHER_IP IP address of the LAVA worker running this job
LAVA_DISPATCHER_PREFIX Optional dispatcher prefix from the worker config
LAVA_JOB_TAGS Comma-separated job tags. Empty when the job requested none
LAVA_DEVICE_HOSTNAME Hostname of the assigned device, if present in the device config
LAVA_DEVICE_TYPE Device type of the assigned device, if present in the device config
HTTP_CACHE Dispatcher http_url_format_string, when configured

Signal node

environment:
  FOO: bar
  BAR: baz

Multinode

For multinode jobs, the environment has to be defined for each multinode role separately:

protocols:
  lava-multinode:
    roles:
      node_a:
        environment:
          FOO: bar
      node_b:
        environment:
          BAR: baz