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"
|