ci/lava: Switch LAVA jobs to x86 runners

So we don't need to provision aarch64 servers, which are these days
rarer than x8_64.

In the switch to the new runner tags, switch to one which contains the
device type, so we can dimension the runner jobs taking into account the
number of DUTs available.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11108>
This commit is contained in:
Tomeu Vizoso 2021-05-31 09:03:04 +02:00
parent 09935c0dde
commit 67af3b6bba
10 changed files with 39 additions and 49 deletions

View File

@ -315,7 +315,7 @@ x86_build:
extends:
- .use-x86_build-base
variables:
MESA_IMAGE_TAG: &x86_build "2021-04-13-glvnd"
MESA_IMAGE_TAG: &x86_build "2021-06-02-lava-x86"
.use-x86_build:
extends:
@ -431,7 +431,7 @@ arm_build:
tags:
- aarch64
variables:
MESA_IMAGE_TAG: &arm_build "2021-04-13-bullseye"
MESA_IMAGE_TAG: &arm_build "2021-06-01-lava-x86"
.use-arm_build:
extends:

View File

@ -8,11 +8,6 @@ sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
echo 'deb https://deb.debian.org/debian buster main' >/etc/apt/sources.list.d/buster.list
apt-get update
EPHEMERAL="
python3-pytest-runner
python3-wheel
"
apt-get -y install \
abootimg \
autoconf \
@ -49,24 +44,16 @@ apt-get -y install \
meson \
pkg-config \
python-is-python3 \
python3-aiohttp \
python3-jinja2 \
python3-mako \
python3-pil \
python3-pip \
python3-requests \
python3-setuptools \
python3-yaml \
python3-zmq \
u-boot-tools \
unzip \
wget \
xz-utils \
zlib1g-dev \
$EPHEMERAL
# Update lavacli to v1.1+
pip3 install git+https://git.lavasoftware.org/lava/lavacli@3db3ddc45e5358908bc6a17448059ea2340492b7
zlib1g-dev
# Not available anymore in bullseye
apt-get install -y --no-remove -t buster \
@ -74,8 +61,6 @@ apt-get install -y --no-remove -t buster \
pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates@6f5af7e5574509726c79109e3c147cee95e81366
apt-get purge -y $EPHEMERAL
arch=armhf
. .gitlab-ci/container/cross_build.sh

View File

@ -77,7 +77,6 @@ apt-get install -y --no-remove \
# Needed for ci-fairy, this revision is able to upload files to MinIO
pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates@6f5af7e5574509726c79109e3c147cee95e81366
############### Uninstall ephemeral packages
apt-get purge -y $STABLE_EPHEMERAL

View File

@ -14,6 +14,7 @@ STABLE_EPHEMERAL=" \
cmake \
libgbm-dev \
libtool \
python3-pip \
unzip \
"
@ -102,6 +103,8 @@ ninja install
popd
rm -rf DirectX-Headers
pip3 install git+https://git.lavasoftware.org/lava/lavacli@3db3ddc45e5358908bc6a17448059ea2340492b7
############### Uninstall the build software
apt-get purge -y \

View File

@ -57,11 +57,13 @@
TEST_SUITE: "deqp"
LAVA_TEST_SCRIPT: "/install/deqp-runner.sh"
extends:
- .use-arm_build # for same $MESA_ARTIFACTS_TAG as in kernel+rootfs_armhf
- .use-x86_build
- .lava-test
- .use-arm_build
- .use-kernel+rootfs-arm
needs:
- kernel+rootfs_armhf
- x86_build
- meson-armhf
.lava-test:arm64:
@ -73,13 +75,15 @@
TEST_SUITE: "deqp"
LAVA_TEST_SCRIPT: "/install/deqp-runner.sh"
extends:
- .use-arm_build # for same $MESA_ARTIFACTS_TAG as in kernel+rootfs_arm64
- .use-x86_build
- .lava-test
- .use-arm_build
- .use-kernel+rootfs-arm
dependencies:
- meson-arm64
needs:
- kernel+rootfs_arm64
- x86_build
- meson-arm64
.lava-test:amd64:
@ -92,12 +96,11 @@
LAVA_TEST_SCRIPT: "/install/deqp-runner.sh"
extends:
- .use-x86_build-base # for same $MESA_ARTIFACTS_BASE_TAG as in kernel+rootfs_amd64
- .use-arm_build # ARM because it must match the architecture of the runner
- .use-x86_build
- .lava-test
- .use-kernel+rootfs-amd64
needs:
- kernel+rootfs_amd64
- arm_build # ARM because it must match the architecture of the runner
- meson-testing
.lava-traces-base:

View File

@ -13,11 +13,11 @@ Mesa-LAVA software architecture
-------------------------------
The gitlab-runner will run on some host that has access to the LAVA
lab, with tags like "lava-mesa-boardname" to control only taking in
jobs for the hardware that the LAVA lab contains. The gitlab-runner
spawns a Docker container with lava-cli in it, and connects to the
LAVA lab using a predefined token to submit jobs under a specific
device type.
lab, with tags like "mesa-ci-x86-64-lava-$DEVICE_TYPE" to control only
taking in jobs for the hardware that the LAVA lab contains. The
gitlab-runner spawns a Docker container with lavacli in it, and
connects to the LAVA lab using a predefined token to submit jobs under
a specific device type.
The LAVA instance manages scheduling those jobs to the boards present.
For a job, it will deploy the kernel, device tree, and the ramdisk
@ -46,14 +46,10 @@ and some public images, and figure out how to get your boards booting.
Once you can boot your board using a custom job definition, it's time
to connect Mesa CI to it. Install gitlab-runner and register as a
shared runner (you'll need a GitLab admin for help with this). The
runner *must* have a tag (like "mesa-lava-db410c") to restrict the
jobs it takes or it will grab random jobs from tasks across
``gitlab.freedesktop.org``, and your runner isn't ready for that.
The runner will be running an ARM Docker image (we haven't done any
x86 LAVA yet, so that isn't documented). If your host for the
gitlab-runner is x86, then you'll need to install qemu-user-static and
the binfmt support.
runner *must* have a tag (like "mesa-ci-x86-64-lava-rk3399-gru-kevin")
to restrict the jobs it takes or it will grab random jobs from tasks
across ``gitlab.freedesktop.org``, and your runner isn't ready for
that.
The Docker image will need access to the lava instance. If it's on a
public network it should be fine. If you're running the LAVA instance
@ -82,5 +78,5 @@ GitLab CI yml, but this way the current method of connecting to the
LAVA instance is separated from the Mesa branches (particularly
relevant as we have many stable branches all using CI).
Now it's time to define your test runner in
``.gitlab-ci/lava-gitlab-ci.yml``.
Now it's time to define your test jobs in the driver-specific
gitlab-ci.yml file, using the device-specific tags.

View File

@ -69,7 +69,7 @@ radv_stoney_vkcts:amd64:
KERNEL_IMAGE_TYPE: ""
VK_DRIVER: radeon
tags:
- mesa-ci-aarch64-lava-collabora
- mesa-ci-x86-64-lava-hp-11A-G6-EE-grunt
radv-fossils:
extends:

View File

@ -8,8 +8,6 @@
BOOT_METHOD: depthcharge
KERNEL_IMAGE_TYPE: ""
FLAKES_CHANNEL: "#intel-ci"
tags:
- mesa-ci-aarch64-lava-collabora
.iris-apl-test:
extends:
@ -18,6 +16,8 @@
DEVICE_TYPE: asus-C523NA-A20057-coral
GPU_VERSION: iris-apl
ENV_VARS: "DEQP_EXPECTED_RENDERER=APL"
tags:
- mesa-ci-x86-64-lava-asus-C523NA-A20057-coral
.iris-glk-test:
extends:
@ -27,6 +27,8 @@
DEVICE_TYPE: hp-x360-12b-n4000-octopus
GPU_VERSION: iris-glk
ENV_VARS: "DEQP_EXPECTED_RENDERER=GLK"
tags:
- mesa-ci-x86-64-lava-hp-x360-12b-n4000-octopus
.iris-amly-test:
extends:
@ -35,6 +37,8 @@
DEVICE_TYPE: asus-C433TA-AJ0005-rammus
GPU_VERSION: iris-amly
ENV_VARS: "DEQP_EXPECTED_RENDERER=AML"
tags:
- mesa-ci-x86-64-lava-asus-C433TA-AJ0005-rammus
iris-apl-gles2:
extends:

View File

@ -13,7 +13,7 @@ panfrost-t720-gles2:arm64:
GPU_VERSION: panfrost-t720
ENV_VARS: "PAN_MESA_DEBUG=sync DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T720"
tags:
- mesa-ci-aarch64-lava-collabora
- mesa-ci-x86-64-lava-sun50i-h6-pine-h64
panfrost-t760-gles2:armhf:
extends:
@ -28,7 +28,7 @@ panfrost-t760-gles2:armhf:
KERNEL_IMAGE_TYPE: ""
ENV_VARS: "PAN_MESA_DEBUG=sync DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T760"
tags:
- mesa-ci-aarch64-lava-collabora
- mesa-ci-x86-64-lava-rk3288-veyron-jaq
panfrost-t760-traces:armhf:
extends:
@ -44,7 +44,7 @@ panfrost-t760-traces:armhf:
KERNEL_IMAGE_TYPE: ""
ENV_VARS: "PAN_MESA_DEBUG=deqp,sync MESA_GLES_VERSION_OVERRIDE=3.1 MESA_GL_VERSION_OVERRIDE=3.3 MESA_GLSL_VERSION_OVERRIDE=330 EGL_PLATFORM=surfaceless PIGLIT_PROFILES=replay PIGLIT_JUNIT_RESULTS=1"
tags:
- mesa-ci-aarch64-lava-collabora
- mesa-ci-x86-64-lava-rk3288-veyron-jaq
.lava-rk3399-gru-kevin:
extends:
@ -58,7 +58,7 @@ panfrost-t760-traces:armhf:
BOOT_METHOD: depthcharge
KERNEL_IMAGE_TYPE: ""
tags:
- mesa-ci-aarch64-lava-collabora
- mesa-ci-x86-64-lava-rk3399-gru-kevin
.panfrost-t860-gles2:arm64:
extends:
@ -100,7 +100,7 @@ panfrost-t760-traces:armhf:
DTB: ${DEVICE_TYPE}
GPU_VERSION: panfrost-g52
tags:
- mesa-ci-aarch64-lava-collabora
- mesa-ci-x86-64-lava-meson-g12b-a311d-khadas-vim3
.panfrost-g52-gles2:arm64:
extends:
@ -137,7 +137,7 @@ panfrost-g52-gles31:arm64:
KERNEL_IMAGE_TYPE: ""
GPU_VERSION: panfrost-g72
tags:
- mesa-ci-aarch64-lava-collabora
- mesa-ci-x86-64-lava-acer-mt8183-cp311-3h-jacuzzi
.panfrost-g72-gles2:arm64:
extends:

View File

@ -10,7 +10,7 @@
DRIVER_NAME: radeonsi
ENV_VARS: "DEQP_PARALLEL=4 DEQP_EXPECTED_RENDERER=STONEY"
tags:
- mesa-ci-aarch64-lava-collabora
- mesa-ci-x86-64-lava-hp-11A-G6-EE-grunt
.radeonsi-stoney-deqp:amd64:
extends:
@ -48,7 +48,7 @@ radeonsi-stoney-traces:amd64:
variables:
ENV_VARS: "EGL_PLATFORM=surfaceless PIGLIT_PROFILES=replay PIGLIT_JUNIT_RESULTS=1"
tags:
- mesa-ci-aarch64-lava-collabora
- mesa-ci-x86-64-lava-hp-11A-G6-EE-grunt
radeonsi-stoney-piglit-gl:amd64:
extends: