File: job-definition.md

package info (click to toggle)
lava 2026.02-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 31,432 kB
  • sloc: python: 83,095; javascript: 16,658; sh: 1,364; makefile: 328
file content (75 lines) | stat: -rw-r--r-- 2,556 bytes parent folder | download | duplicates (2)
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# Job definition

The [job definition](../../technical-references/job-definition/job.md) is a
`yaml` file that you submit to the LAVA server. This file is describing everything
that LAVA needs to know to run your tests on a DUT.

## QEMU example

Let's look at this example:

```yaml
--8<-- "jobs/qemu.yaml"
```

## Structure

The job definition is made of:

* `device_type`: requested device-type
* `job_name`: name of the job, sometime called `description`
* `timeouts`: [timeout definition](../../technical-references/job-definition/timeouts.md)
* `priority`: [job priority](../../technical-references/job-definition/job.md#priority)
* `visibility`: [job visibility](../../technical-references/job-definition/job.md#visibility)
* `environment`: [job environment](../../technical-references/job-definition/environment.md)
* `actions`: list of actions to run

In this definition, we request to run a job called `simple qemu tjob` on a `qemu` DUT.
The job is visible to everyone (including anonymous users).
The job will not run for more than 10 minutes at `medium` priority.

## Actions

`actions` is a list of actions that LAVA will have to execute for the given
job.

Currently, LAVA support four type of actions:

* [command](../../technical-references/job-definition/actions/command.md): run commands on the dispatcher
* [deploy](../../technical-references/job-definition/actions/deploy/index.md): deploy software on the DUT
* [boot](../../technical-references/job-definition/actions/boot/common.md): boot the DUT
* [test](../../technical-references/job-definition/actions/test.md): run some tests

### Deploy

The deploy action will deploy the software on the DUT, using the method
specified by the `to`.

In this example, we are requesting to deploy to `tmpfs`. The `rootfs` will be
downloaded from the given url.

!!! info "deployment methods"
    LAVA supports many deployment methods. However, only some methods are
    supported by each device-type.

### Boot

The boot action will boot the DUT, using the method specified by the `method`.

In this example, we are requesting to boot `qemu` using the software from
`tmpfs`.

!!! info "boot methods"
    LAVA supports many boot methods. However, only some methods are supported
    by each device-type.

### Test

The test action will run the given tests on the DUT.

In this example, LAVA will download the [test definitions](./test-definition.md) from two git repositories.

!!! info "test methods"
    LAVA supports three test methods that do not depend on the device-type.

--8<-- "refs.txt"