Commit graph

3453 commits

Author SHA1 Message Date
Valentine Burley
ffe8a2e023 ci/lava: Use init-stage2 and setup-test-env.sh from Mesa install
init-stage2.sh and setup-test-env.sh are already downloaded on the DUT as
part of the mesa-build overlay, which downloads the Mesa artifacts from
S3.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35051>
2025-05-26 15:30:47 +00:00
Valentine Burley
a6e1926a8e ci: Fix date parsing with BusyBox on Alpine
This fixes the timestamps in Alpine containers.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35051>
2025-05-26 15:30:47 +00:00
Valentine Burley
cc83b3db5f ci: Forward all environment variables to DUTs and crosvm
Instead of the current allowlist in export-gitlab-job-env-for-dut.sh,
filter out unwanted environment variables and forward the rest to
bare-metal and LAVA DUTs, as well as crosvm.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35051>
2025-05-26 15:30:47 +00:00
Collabora's Gfx CI Team
1730001351 Uprev Piglit to c32e5cc717e846ffa43408174181dc16a31d3df0
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
1767af745e...c32e5cc717

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35148>
2025-05-26 10:19:29 +00:00
Daniel Stone
086d7cb8fd ci/bare-metal: Remove remnants of old bare-metal setups
With the rest of the Qualcomm devices moving to LAVA, we can remove the
original (!) bare-metal infrastructure, leaving only the Igalia RPi
devices still using bare-metal. When those are converted to b2c, we can
remove the rest of bare-metal.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35148>
2025-05-26 10:19:29 +00:00
Collabora's Gfx CI Team
3b6d7cdd23 Uprev ANGLE to ec4d8f8e4d3f1a9e64430abd8b6b436253732adf
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
db71e8fa7c...ec4d8f8e4d

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35040>
2025-05-24 07:35:01 +00:00
Mike Blumenkrantz
00aaef9f12 delete gallium-nine
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
farewell, old friend

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Axel Davy <davyaxel0@gmail.com>
Acked-by: David Heidelberg <david@ixit.cz>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34887>
2025-05-23 13:43:37 -04:00
Mike Blumenkrantz
3be2c47db2 delete the XA frontend
this is unmaintained and untested

Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34823>
2025-05-23 12:46:23 -04:00
Mike Blumenkrantz
c374bfd864 ci: set -Wno-error=deprecated-declarations
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34054>
2025-05-23 13:21:29 +00:00
Valentine Burley
dc483ea924 ci: Remove firmware from test-base
Firmware packages continue to grow in size, so stop installing them in
the test-base image.

The necessary firmware is now collected and uploaded per vendor in an
external repository.

LAVA devices can opt into optional firmware by specifying the name of the
archive via LAVA_FIRMWARE.

For bare-metal, Qualcomm firmware required for DUTs in the Google lab is
included in the baremetal image.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13051

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34861>
2025-05-21 08:48:15 +00:00
Guilherme Gallo
afaa236803 ci/lava: make overlay->compression optional
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34861>
2025-05-21 08:48:14 +00:00
Eric Engestrom
b03d5ecad3 ci: uprev vkd3d
7eef0a64e3...7e829e8836

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35074>
2025-05-20 18:40:28 +00:00
Eric Engestrom
6c1968df19 ci/container: fix whitespace for yamllint
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35068>
2025-05-20 14:51:18 +00:00
Eric Engestrom
76ca28865b ci: avoid unsetting S3_JWT too early in container image builds
Fixes: 0a52d00393 ("ci: clear S3_JWT_FILE_SCRIPT as it also contains the S3_JWT")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35068>
2025-05-20 14:51:18 +00:00
Guilherme Gallo
e9e98d997d ci/lava: Parametrize message burst length on unit tests
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
We can have jobs with a lower job timeout values, given by
CI_JOB_TIMEOUT environment variable, such as the pytest ones.

The previously hardcoded burst length of 1000 messages at a simulated
rate of 1 msg/sec caused tests to exceed these timeouts and fail
unexpectedly on specific job timeouts.

Reported-by: Eric Engestrom <eric@igalia.com>
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34907>
2025-05-19 22:44:21 +00:00
Guilherme Gallo
e7f6b4bdae ci/lava: Improve timeout estimation logic for case/suite runs
Some jobs, like those using pytest, have lower `CI_JOB_TIMEOUT` values.
This change ensures that the estimated LAVA overhead (in minutes) is
compatible with the actual job timeout, failing early with an assertion
and also avoiding mismatches and unintended timeouts.

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34907>
2025-05-19 22:44:21 +00:00
Eric Engestrom
fd8d8264e0 ci/ci-tron: replace crude dump of env vars with reproducible job script
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34962>
2025-05-19 11:04:32 +02:00
Collabora's Gfx CI Team
38efae8964 Uprev Piglit to 1767af745ed96f77b16c0c205015366d1fbbdb22
1498c397ea...1767af745e

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34936>
2025-05-16 17:25:05 +00:00
Collabora's Gfx CI Team
749ccf3a9c Uprev ANGLE to db71e8fa7c26d18f76d7b9e9474447b20f1c73b3
db33baf4eb...db71e8fa7c

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34936>
2025-05-16 17:25:05 +00:00
Valentine Burley
4ad8c8752d ci: Run rustfmt and python jobs on aarch64
The x86_64 shared runners often have long queues.
Move the rustfmt, python-artifacts, and yaml-toml-shell-py-test jobs to
use the aarch64 runners instead.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35000>
2025-05-16 06:07:20 +00:00
Valentine Burley
3029898a15 ci/container: Include DEBIAN_BUILD_TAG in debian/arm64_build
Unlike other containers (e.g. debian/x86_64_build-base and
debian/x86_64_build), debian/arm64_build is a single-stage image without
a separate -base variant.

Including DEBIAN_BUILD_TAG in its FDO_DISTRIBUTION_TAG ensures it gets
rebuilt when the build tag changes.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12737
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35000>
2025-05-16 06:07:20 +00:00
Mel Henning
c1f979d84a nak: Add a dependency on rustc-hash
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34865>
2025-05-16 01:40:04 +00:00
Collabora's Gfx CI Team
d03d7015fd Uprev ANGLE to db33baf4eb0d7954f0110cddc30acb9cdc12e2d4
3540a326ec...db33baf4eb

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34870>
2025-05-14 08:04:17 +00:00
Eric Engestrom
0c4f53e8ae ci-tron: drop default timeouts
Every job must define the right timeouts anyway, so it doesn't make
sense to set these here.

Additionally, the 90/100 minutes overall timeout was unreachable since
the per-boot-cycle timeout was 45 minutes and there was no
BOOT_CYCLE__RETRIES set, so no retry was possible.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34899>
2025-05-09 22:19:39 +00:00
Eric Engestrom
0f4b022708 ci/ci-tron: drop special case for default x86_64 kernel (= uprev to 6.13.7)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34898>
2025-05-09 15:56:18 +00:00
Eric Engestrom
9798f48de5 ci/ci-tron: document which kernel version is provided in a given b2c release
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34898>
2025-05-09 15:56:18 +00:00
Valentine Burley
34012d5af3 ci: Remove EXTERNAL_KERNEL_TAG variable
The EXTERNAL_KERNEL_TAG variable is no longer needed.
For LAVA and bare-metal, we can override the KERNEL_TAG variable to fetch
both the kernel image and modules from a different tag than the default
mainline gfx-ci/linux kernel.

For LAVA, this also avoids the issue where jobs using EXTERNAL_KERNEL_TAG
would still have mainline kernel modules downloaded by the LAVA overlay.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34873>
2025-05-09 07:18:53 +00:00
Valentine Burley
c093a09660 ci/baremetal: Fix rootfs URL detection
The previous check used a directory path without the filename, causing
`curl` to return 404 and always fall back to the fork's URL. Add the
rootfs filename to ensure the check works as intended.

Fixes: 13db56320b ("ci/baremetal: Use container rootfs")

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34873>
2025-05-09 07:18:53 +00:00
Eric Engestrom
d7743ac71f ci/ci-tron: uprev b2c to 0.9.15.1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34795>
2025-05-07 21:02:16 +00:00
Martin Roukala (né Peres)
26e35d538a ci: rename all the .b2c- jobs into .ci-tron-
We named these jobs like this despite b2c being an implementation
detail because we did not have a name for this bare-metal infra.

Now that we do (CI-Tron), let's rename the jobs to remove the
confusion.

Co-authored-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34795>
2025-05-07 21:02:16 +00:00
Eric Engestrom
909d41ef89 ci/build: stop uploading python-artifacts to gitlab artifacts
Everyone uses the S3 bucket for artifacts now.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34795>
2025-05-07 21:02:16 +00:00
Eric Engestrom
a8e282b0c0 ci/ci-tron: print all the variables
This makes it easier to debug inheritance issues like the one fixed
earlier in this series, and makes it easier to reproduce a job without
needing more than looking at the job log.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34795>
2025-05-07 21:02:15 +00:00
Eric Engestrom
f4d2b2a060 ci/ci-tron: add check that the required variables are set
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34795>
2025-05-07 21:02:15 +00:00
Martin Roukala (né Peres)
37ace710fa ci/ci-tron: switch to the upstream ci-tron template
Up until now, every project using CI-Tron had to write their own job
submission flow because CI-Tron itself was not providing any official
way of interacting with it via GitLab.

This however changed, and the solution is vastly superior to what we
have been using in Mesa:

 * Ability to pass all the environment variables of the job to the DUT,
   so no need to remember to add variables in
   `export-gitlab-job-env-for-dut.sh` anymore

 * No dependency on Mesa code, which means no need to wait on
   python-artifacts and the ability to replicate a run by just copying
   the job description outputted by the job \o/

 * Ability to have as many initrd, HTTP, and TFTP artifacts as wanted

 * Ability to expose a variable through a TFTP/HTTP endpoint or as an
   initrd

 * Ability to overwrite the platform environment (machine-specific FW)

 * Ability to have as many kernel cmdline variables, all merged when
   generating the final cmdline. This makes it easy to share some
   snippets of cmdline between jobs

Transitioning from the custom to the generic template is however pretty
involved. This commit does the minimum changes needed to switch to the
new model, often simply replacing the B2C_ prefix with CI_TRON_.

Further renaming of "b2c" prefixes into "ci-tron" is left for future
commits.

Co-authored-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34795>
2025-05-07 21:02:15 +00:00
Eric Engestrom
c78a7d464b ci/ci-tron: deduplicate setting the runner tags for most jobs
etnaviv is the important exception, as it needs to set two fields for
the setup tags, which need to be handled individually as runner tags.

The other exception is the nightly vangogh job that has a custom tag
added, which I'll hopefully get rid of Soon™.

One farm's jobs were also missing farm:$RUNNER_FARM_LOCATION; this
change ensures that it's always set, avoiding the risk of accidentally
picking an equivalent device in another farm.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34795>
2025-05-07 21:02:15 +00:00
Eric Engestrom
a40c862ca6 ci/vkd3d: stop supressing vulkaninfo errors
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34795>
2025-05-07 21:02:15 +00:00
Eric Engestrom
f95adc2c34 ci/b2c: drop dead /runner-before-script.sh code
This has never been used (instead, `pre_build_script` was used), let's drop it.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34795>
2025-05-07 21:02:15 +00:00
Collabora's Gfx CI Team
e8a9b4571e Uprev ANGLE to 3540a326ec8497700523eb2d3eca90ae21806e8e
f355e2b37e...3540a326ec

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34813>
2025-05-07 12:13:24 +00:00
Valentine Burley
9749a1a4e4 ci: Refactor structured tagging component definitions
Introduce per-component CI_BUILD_COMPONENTS_* variables to allow
more flexible composition of CI_BUILD_COMPONENTS, and add these to
every container job by listing them in .container.

Also rework the -arm64 and -x86_64 definitions, which were still
based on the old kernel+rootfs layout. Split them into -gl and -vk,
but keep -arm32, which builds fewer components.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34813>
2025-05-07 12:13:24 +00:00
Valentine Burley
54309f4e7a ci: Replace HWCI_KVM with HWCI_ENABLE_X86_KVM
Replace HWCI_KVM="true" with HWCI_ENABLE_X86_KVM=1 for consistency with
other integer-based toggles (e.g. HWCI_START_WESTON,
PARALLELISE_VIA_LP_THREADS).

The new name also makes the variable’s purpose clearer by explicitly
referencing X86.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34813>
2025-05-07 12:13:24 +00:00
Valentine Burley
d527da301f ci: Don't include the kernel in test-base image
Including the kernel image in test-base requires rebuilding every
x86_64 container image on each kernel uprev, even though only the
crosvm jobs use this kernel.

Move the download to runtime and update the  distribution tags to avoid
triggering container rebuilds on kernel changes.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34813>
2025-05-07 12:13:24 +00:00
Valentine Burley
c276e0b29a ci/crosvm: Use structured tagging for crosvm
Structured tagging captures a checksum of the component we think we're
building, and verifies this through the chain.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34813>
2025-05-07 12:13:24 +00:00
Valentine Burley
f2c68b2ea9 ci/crosvm: Collapse build section
Make the container build more readable and easier to follow in CI logs.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34813>
2025-05-07 12:13:24 +00:00
Valentine Burley
d847d553ca ci/crosvm: Fix image tags in build-crosvm.sh header
Bumping DEBIAN_BASE_TAG already triggers a rebuild of the test-gl and
test-vk containers, so their tags don’t need to be updated manually.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34813>
2025-05-07 12:13:24 +00:00
Collabora's Gfx CI Team
149bad63ea Uprev Piglit to 1498c397ea35119692b579dd6f523de4651c663f
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
c50d9aa54f...1498c397ea

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34688>
2025-05-05 20:34:12 +00:00
Eric Engestrom
7e0f157b8a ci: pass vk_require_etc2 from radv jobs through to the duts
history:
- 8d83ffe531 ("radv/ci: Add coverage for ETC2 emulation.")
  var added to the jobs as `radv_require_etc2`, but not passed to duts
- 567c32b55c ("radv, drirc: rename radv_require_{etc2,astc}")
  var renamed to `vk_require_etc2`, except in the jobs
- 5f177018f7 ("radv/ci: re-enable ET2C emulation testing on non-native GPUs")
  var renamed in the jobs, but still not passed to duts

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Martin Roukala <martin.roukala@mupuf.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34796>
2025-05-05 15:53:45 +02:00
Michel Dänzer
f177b787b8 ci: Drop obsolete -Wno-error= stanzas
No corresponding warnings left. Tighten the screws to prevent new
warnings from creeping in.

v2:
* The debian-clang-release job still needs
  -Wno-error=sometimes-uninitialized.
v3:
* Drop more from debian-arm64-asan & debian-testing-msan jobs.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34799>
2025-05-05 08:02:11 +00:00
Valentine Burley
e7ce35f3c5 ci/fluster: Fix and rename S3_PATH_FLUSTER to S3_FLUSTER_TAR
Some checks failed
macOS-CI / macOS-CI (dri) (push) Has been cancelled
macOS-CI / macOS-CI (xlib) (push) Has been cancelled
The S3_PATH_FLUSTER variable already included the archive filename.
Appending `vectors.tar.zst` again during upload caused the file to be
stored at the wrong location, which broke retrieval in subsequent builds.

Fix this behavior and rename the variable to S3_FLUSTER_TAR to make its
purpose clearer and avoid future confusion.

Fixes: a3fb667b1d ("ci: Include Fluster vectors in the rootfs")

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34787>
2025-05-03 16:09:12 +02:00
Valentine Burley
f6f7f9e7a2 ci/fluster: Use the structured tag as the Fluster vector version
The strucutered tag replaces the need to have a separate
FLUSTER_VECTORS_VERSION variable just to check if the vectors changed.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34787>
2025-05-03 15:39:51 +02:00
Valentine Burley
b01a091856 ci/fluster: Use structured tagging for Fluster
Structured tagging captures a checksum of the component we think we're
building, and verifies this through the chain.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34787>
2025-05-03 15:38:59 +02:00