diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 74279de37c2..a12b4d0d6d1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -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: diff --git a/.gitlab-ci/container/arm_build.sh b/.gitlab-ci/container/arm_build.sh index 34688a95633..438e7ef984d 100644 --- a/.gitlab-ci/container/arm_build.sh +++ b/.gitlab-ci/container/arm_build.sh @@ -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 diff --git a/.gitlab-ci/container/x86_build-base.sh b/.gitlab-ci/container/x86_build-base.sh index 90a34bf18f3..7f9bef01a27 100644 --- a/.gitlab-ci/container/x86_build-base.sh +++ b/.gitlab-ci/container/x86_build-base.sh @@ -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 diff --git a/.gitlab-ci/container/x86_build.sh b/.gitlab-ci/container/x86_build.sh index 6fdc053aad8..c32011e58d1 100644 --- a/.gitlab-ci/container/x86_build.sh +++ b/.gitlab-ci/container/x86_build.sh @@ -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 \ diff --git a/.gitlab-ci/lava-gitlab-ci.yml b/.gitlab-ci/lava-gitlab-ci.yml index c36581b642f..4a577d85ebe 100644 --- a/.gitlab-ci/lava-gitlab-ci.yml +++ b/.gitlab-ci/lava-gitlab-ci.yml @@ -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: diff --git a/docs/ci/LAVA.rst b/docs/ci/LAVA.rst index c5aa1e4b8af..53efcaa6926 100644 --- a/docs/ci/LAVA.rst +++ b/docs/ci/LAVA.rst @@ -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. diff --git a/src/amd/ci/gitlab-ci.yml b/src/amd/ci/gitlab-ci.yml index ef28c66f670..4a3d445084f 100644 --- a/src/amd/ci/gitlab-ci.yml +++ b/src/amd/ci/gitlab-ci.yml @@ -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: diff --git a/src/gallium/drivers/iris/ci/gitlab-ci.yml b/src/gallium/drivers/iris/ci/gitlab-ci.yml index 11958cc0225..1687c70263b 100644 --- a/src/gallium/drivers/iris/ci/gitlab-ci.yml +++ b/src/gallium/drivers/iris/ci/gitlab-ci.yml @@ -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: diff --git a/src/gallium/drivers/panfrost/ci/gitlab-ci.yml b/src/gallium/drivers/panfrost/ci/gitlab-ci.yml index 7d1fd6b5484..20173995e83 100644 --- a/src/gallium/drivers/panfrost/ci/gitlab-ci.yml +++ b/src/gallium/drivers/panfrost/ci/gitlab-ci.yml @@ -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: diff --git a/src/gallium/drivers/radeonsi/ci/gitlab-ci.yml b/src/gallium/drivers/radeonsi/ci/gitlab-ci.yml index 20db7ac3616..df155884abd 100644 --- a/src/gallium/drivers/radeonsi/ci/gitlab-ci.yml +++ b/src/gallium/drivers/radeonsi/ci/gitlab-ci.yml @@ -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: