
Place the kernel and ramdisk into a place in the file server so the URL will only change when the contents also change. Also put the Mesa build into a separate tarball so the ramdisk's contents don't change every build. With proper caching in place, all devices in the same farm need only to download the mesa tarball once, saving time. As we switch to MinIO for making kernels and rootfs available to LAVA devices, we can stop using Docker to distribute them. Instead, build when needed in separate jobs that push directly to MinIO, from where LAVA devices can download them. Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Acked-by: Daniel Stone <daniels@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5515>
103 lines
2.6 KiB
Django/Jinja
103 lines
2.6 KiB
Django/Jinja
job_name: mesa-deqp-{{ deqp_version }}-{{ gpu_version }} {{ pipeline_info }}
|
|
device_type: {{ device_type }}
|
|
timeouts:
|
|
job:
|
|
minutes: 40
|
|
action:
|
|
minutes: 10
|
|
actions:
|
|
power-off:
|
|
seconds: 30
|
|
priority: 75
|
|
visibility: public
|
|
{% if tags %}
|
|
{% set lavatags = tags.split(',') %}
|
|
tags:
|
|
{% for tag in lavatags %}
|
|
- {{ tag }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
actions:
|
|
- deploy:
|
|
timeout:
|
|
minutes: 10
|
|
to: tftp
|
|
kernel:
|
|
url: {{ base_artifacts_url }}/{{ kernel_image_name }}
|
|
{% if kernel_image_type %}
|
|
{{ kernel_image_type }}
|
|
{% endif %}
|
|
ramdisk:
|
|
url: {{ base_artifacts_url }}/lava-rootfs.cpio.gz
|
|
compression: gz
|
|
dtb:
|
|
url: {{ base_artifacts_url }}/{{ device_type }}.dtb
|
|
os: oe
|
|
- boot:
|
|
timeout:
|
|
minutes: 5
|
|
method: {{ boot_method }}
|
|
{% if boot_method == "fastboot" %}
|
|
{#
|
|
For fastboot, LAVA doesn't know how to unpack the rootfs/apply overlay/repack,
|
|
so we transfer the overlay over the network after boot.
|
|
#}
|
|
transfer_overlay:
|
|
download_command: wget -S --progress=dot:giga
|
|
unpack_command: tar -C / -xzf
|
|
{% else %}
|
|
commands: ramdisk
|
|
{% endif %}
|
|
prompts:
|
|
- 'lava-shell:'
|
|
- test:
|
|
timeout:
|
|
minutes: 60
|
|
definitions:
|
|
- repository:
|
|
metadata:
|
|
format: Lava-Test Test Definition 1.0
|
|
name: deqp
|
|
description: "Mesa dEQP test plan"
|
|
os:
|
|
- oe
|
|
scope:
|
|
- functional
|
|
run:
|
|
steps:
|
|
- mount -t proc none /proc
|
|
- mount -t sysfs none /sys
|
|
- mount -t devtmpfs none /dev || echo possibly already mounted
|
|
- mkdir -p /dev/pts
|
|
- mount -t devpts devpts /dev/pts
|
|
- echo "nameserver 8.8.8.8" > /etc/resolv.conf
|
|
- date "+%Y%m%d %H%M" -s "{{ date }}"
|
|
|
|
|
|
{% if env_vars %}
|
|
- export {{ env_vars }}
|
|
{% endif %}
|
|
|
|
# deqp-runner.sh assumes some stuff is in pwd
|
|
- cd /
|
|
|
|
- wget -S --progress=dot:giga -O- {{ mesa_url }} | tar -xz
|
|
|
|
- export DEQP_NO_SAVE_RESULTS=1
|
|
- 'export DEQP_RUNNER_OPTIONS="--shuffle false"'
|
|
- export DEQP_EXPECTED_FAILS=deqp-{{ gpu_version }}-fails.txt
|
|
- export DEQP_SKIPS=deqp-{{ gpu_version }}-skips.txt
|
|
- export DEQP_VER={{ deqp_version }}
|
|
- export LIBGL_DRIVERS_PATH=`pwd`/install/lib/dri
|
|
|
|
- "if sh /install/deqp-runner.sh; then
|
|
echo 'deqp: pass';
|
|
else
|
|
echo 'deqp: fail';
|
|
fi"
|
|
parse:
|
|
pattern: '(?P<test_case_id>\S*):\s+(?P<result>(pass|fail))'
|
|
from: inline
|
|
name: deqp
|
|
path: inline/mesa-deqp.yaml
|