Commit Graph

2915 Commits

Author SHA1 Message Date
Eric Engestrom
4fa1730cdd ci: only end current section if there is a current section
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31939>
2024-11-05 20:30:21 +00:00
Deborah Brouwer
37602ad653 ci: simplify .baremetal-arm64-asan-test
The `.baremetal-arm64-asan-test` job extends `.baremetal-test` and
`.use-debian/baremetal_arm64_test` but doing this is unnecessary because
all of the arm64-asan jobs also inherit the `.baremetal-test-arm64` job
which does the same thing.

Furthermore when `.baremetal-arm64-asan-test` appears last in the list of
extended jobs, as in the case of the `a630-gles-asan`, the general rules
inherited by `.baremetal-arm64-asan-test` override the more specific
driver rules and prevent the driver job from appearing in the merge
pipeline.

Simply bumping the `.baremetal-arm64-asan-test` job back earlier in the
list of extended jobs would allow the driver rules to take precedence but
then the S3_ARTIFACT_NAME, provided by `.baremetal-arm64-asan-test`, which
is specific for asan builds, is overridden.

By removing the inherited jobs from the `.baremetal-arm64-asan-test`,
this job can continue to provide the asan artifact without interfering
with the driver jobs appearing in the merge pipeline.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31916>
2024-11-04 13:14:22 -08:00
Deborah Brouwer
14f929035f ci: simplify .baremetal-arm32-asan-test
The `.baremetal-arm32-asan-test` job extends `.baremetal-test` and
`.use-debian/baremetal_arm32_test` but doing this is unnecessary because
the only job that extends `.baremetal-arm32-asan-test`, i.e.
`gc2000-gles2-asan`, also indirectly inherits `.baremetal-test-arm32`
which does the same thing.

Duplicating the extended jobs in `.baremetal-arm32-asan-test` can
unnecessarily cause rule overrides and unexpectedly remove jobs from
pipelines.

Remove the inherited jobs from the `.baremetal-arm32-asan-test` job so
that (when the necessary farm is enabled) `gc2000-gles2-asan` will appear
in pipelines as expected.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31916>
2024-11-04 13:14:22 -08:00
Guilherme Gallo
2d5b574b8d ci/lava: Fix LAVA job definition tests
Now that the LAVAJobSubmitter's `__post_init__` method is working for
unit tests, one of the job definitions parametrized tests started to
fail due to lack of LAVA proxy mocking.

This commit adds the missing pieces.

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31882>
2024-10-31 18:00:27 +00:00
Guilherme Gallo
bc86b73bbe ci/lava: Fix lava-tags parsing
python-fire auto-converts `item1,item2` into a tuple, but if there is a
dash `-` inside the argument, it treats it as a string.

Let's validate the data, when it comes as a `str` or `tuple`.

For more details, here are the tested scenarios:

| --lava-tags= | Type  | Value               |
|--------------|-------|---------------------|
| None         | bool  | True                |
| ''           | str   | ''                  |
| tag1         | str   | "tag1"              |
| tag1,        | tuple | ("tag1",)           |
| tag-1,tag-2  | str   | 'tag-1,tag-2'       |
| tag1,tag2    | tuple | ("tag1", "tag2")    |
| ','          | str   | ','                 |
| ',,'         | str   | ',,'                |
| 'tag1,,'     | str   | 'tag1,,'            |

See also:
https://google.github.io/python-fire/guide/#argument-parsing

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31882>
2024-10-31 18:00:27 +00:00
Daniel Stone
ce78dcb24e ci/lava: Refactor is-rootfs-uploaded function
We don't need the /done anymore, because we have better job
dependencies. But the mainline-or-fork query is still helpful, so
refactor that out into a common helper we can reuse for other things.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Co-authored-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31882>
2024-10-31 18:00:27 +00:00
Daniel Stone
f44970173d ci/lava: Provide list of overlays to submitter
Instead of providing a hardcoded set of arguments, allow overlays to be
added to the submitter script. Passing Python dicts as a string
representation and relying on coercion from strings is far from great,
but fire doesn't give anything else, so.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Co-authored-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31882>
2024-10-31 18:00:27 +00:00
Daniel Stone
f32a2de26d ci/lava: Provide LAVA rootfs URL directly
Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31882>
2024-10-31 18:00:27 +00:00
Daniel Stone
2b3839c9c7 ci/lava: Use LAVA rootfs overlays for build/per-job
We compose the rootfs from a mixture of the base rootfs (exported from
the container build stage, currently lava_build.sh, which can be reused
as long as the container isn't rebuilt), the Mesa build overlay
(exported from the debian-* build job, which can be reused for every job
in that pipeline), and the per-job rootfs (containing job-specific
variables which cannot be reused).

Instead of having LAVA pull the base rootfs and separately downloading
the build/per-job parts on the DUT, get LAVA to compose the whole thing
by using overlays.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Co-authored-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31882>
2024-10-31 18:00:26 +00:00
Daniel Stone
021d7d8b77 ci/lava: Remove duplicate build download
We already do it above.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31882>
2024-10-31 18:00:26 +00:00
Collabora's Gfx CI Team
ff442e49b3 Uprev Piglit to c2b31333926a6171c3c02d182b756efad7770410
791e420b26...c2b3133392

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31811>
2024-10-30 18:11:56 +00:00
Eric Engestrom
322a83f321 ci/build: lower most job's timeout from 30 to 15 min
Out of 5 run during busy hours, all the jobs that once took 5+ min are:
build-for-tests / debian-arm64-asan      6 min
build-only      / debian-s390x           6 min
build-only      / debian-android         7 min
build-only      / debian-clang           8 min
build-for-tests / debian-arm32-asan      8 min
build-only      / debian-vulkan         11 min
build-for-tests / debian-testing        12 min
build-only      / debian-testing-msan   12 min
build-only      / debian-clang-release  13 min
build-only      / alpine-build-testing  14 min
build-for-tests / debian-testing-asan   21 min

The jobs at 10+ min are considered to take long enough that they might
risk crossing the 15 min mark, so let's keep these ones at 30 min and
lower the timeout for everyone else to 15 min.

It's worth pointing out that debian-testing-asan is a build-for-tests
job and as such it blocks build-only jobs from running until it's
finished, which can be a problem for a job that has been seen taking 20+
minutes. We should do something about that, but that's not the topic of
this MR.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31846>
2024-10-30 16:21:16 +00:00
Eric Engestrom
6425b6e3d4 ci/build: handle build timeout ourselves to give more time to nightly LTO builds
GitLab doesn't (yet) support `timeout:` being a variable, so let's put
the real `timeout:` at the max timeout we want, and internally use
another timeout (using coreutils' `timeout`) that we _can_ set using
a variable.

With that, we can set a 1h timeout on nightly LTO builds while keeping
our tighter 30min timeout the rest of the time.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31846>
2024-10-30 16:21:16 +00:00
Eric Engestrom
f5f82fdff5 ci/build: deduplicate meson build command
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31846>
2024-10-30 16:21:16 +00:00
Vignesh Raman
c3531d5fea ci: rename FORCE_KERNEL_TAG to EXTERNAL_KERNEL_TAG
FORCE_KERNEL_TAG allows testing kernel uprevs without rebuilding
containers by supplying an external kernel directly for booting on
hardware devices. Renaming it to EXTERNAL_KERNEL_TAG clarifies its
purpose, distinguishing it from KERNEL_TAG which rebuilds containers.

Signed-off-by: Vignesh Raman <vignesh.raman@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31795>
2024-10-28 02:18:27 +00:00
Samuel Pitoiset
38d7492391 ci: uprev VKCTS to 1.3.10.0
This tag contains tests for DGC EXT.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31789>
2024-10-25 14:03:37 +02:00
Eric Engestrom
03f056ea71 ci: skip slow tests on all non-"full" jobs
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31828>
2024-10-25 08:26:31 +00:00
Eric Engestrom
bedb2f8a86 ci: rename "merge-skips" to "slow-skips" as they're about to be used outside of merge piplines
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31828>
2024-10-25 08:26:31 +00:00
Eric Engestrom
460c2eb967 ci: move shellcheck options to .shellcheckrc
That way, IDEs get to have the same behaviour as the CI

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31826>
2024-10-24 22:43:03 +00:00
Vignesh Raman
ce98715566 ci/crosvm: Use default value for CROSVM_GALLIUM_DRIVER
Use a default value for CROSVM_GALLIUM_DRIVER. This change
ensures that if the variable is unset, it defaults to an
empty string. This prevents unbound variable errors with
set -u in the case of drm-ci.

Signed-off-by: Vignesh Raman <vignesh.raman@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31814>
2024-10-24 08:46:54 +00:00
Samuel Pitoiset
9fda96db5b ci: uprev vkd3d-proton to 59d6d4b5ed23766e69fe252408a3401d2fd52ce8
It contains few fixes for recent DGC tests.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31796>
2024-10-23 15:47:54 +00:00
David Heidelberg
562b80cf69 ci/build: Do not do LTO on any pre-merge job
Running LTO on pre-merge can be time-consuming,
especially on (over)loaded CI.

Let's keep it in nightly jobs to ensure coverage without causing
timeouts in pre-merge pipelines.

Signed-off-by: David Heidelberg <david@ixit.cz>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31790>
2024-10-22 19:51:34 +00:00
David Heidelberg
72b5e4045b ci/fedora: add workaround for buggy GCC warning triggered by r600
In function 'r600_init_resource_fields',
    inlined from 'r600_buffer_create' at ../src/gallium/drivers/r600/r600_buffer_common.c:561:2:
../src/gallium/drivers/r600/r600_buffer_common.c:121:48: error: array subscript 'struct r600_texture[0]' is partly outside array bounds of 'unsigned char[256]' [-Werror=array-bounds=]
  121 |         if ((res->b.b.target != PIPE_BUFFER && !rtex->surface.is_linear) ||
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/util/os_memory.h:37

Signed-off-by: David Heidelberg <david@ixit.cz>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31790>
2024-10-22 19:51:34 +00:00
Samuel Pitoiset
7cd7631554 ci: uprev vkd3d-proton to 65b81403435576d882d9141ae3eb4a29373fba0e
For EXT DGC implementation.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31754>
2024-10-22 14:12:32 +00:00
Eric Engestrom
bc0da4bdfc ci: move comment into the appropriate section
I wrote the toml linter, but not the rest.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31785>
2024-10-22 13:01:56 +00:00
Eric Engestrom
ba789f2ce6 ci: move yaml-toml-shell-test out of build-for-tests stage
It inherited the stage from `python-test`, but it's not accurate here.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31785>
2024-10-22 13:01:56 +00:00
Daniel Stone
2950d55828 ci/skqp: Set $SKQP_ARCH from build-skqp.sh
Let's just use $DEBIAN_ARCH consistently for our target architecture,
and do any mappings down in build scripts.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31781>
2024-10-22 10:44:36 +00:00
Daniel Stone
abf7f11796 ci: Use sections for test container builds
These can be really long; it's helpful to have the sections to be able
to separate the individual builds, as well as to get an idea of where
our time goes.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31781>
2024-10-22 10:44:36 +00:00
Daniel Stone
4b2ff9c946 ci/skqp: Fix relative paths
When we use build-skqp as a sourced script, $0 refers to the overall
build script, which may not be in .gitlab-ci/container/.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31781>
2024-10-22 10:44:36 +00:00
Daniel Stone
2d03e67bbf ci/angle: Use relative paths
When we use build-angle as a sourced script, $0 refers to the overall
build script, which may not be in .gitlab-ci/container/.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31781>
2024-10-22 10:44:36 +00:00
Daniel Stone
ff97a8b006 ci/firmware: Allow calling firmware as sourced script
Most of our build scripts are sourced rather than executed in a
subshell, so they inherit our environment. Allow our firmware script to
do the same by not exiting when we have no firmware to download, as is
the case on arm32.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31781>
2024-10-22 10:44:36 +00:00
Daniel Stone
24a9fe6655 ci: Really remove Mesa drivers from rootfs
It turns out dpkg doesn't actually support wildcard expansion. Oops.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31781>
2024-10-22 10:44:36 +00:00
Daniel Stone
5e1d3c2ffe ci/mold: Use appropriate parallelism and strip binaries
--parallel will by default launch way too many processes and just DoS
itself. We also want to strip the installed binary.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31781>
2024-10-22 10:44:36 +00:00
Daniel Stone
05b5701c01 ci/lava: Source setup-test-env
Make sure we have it available everywhere.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31781>
2024-10-22 10:44:36 +00:00
Eric Engestrom
28655b26f5 ci/b2c: make initramfs & kernel urls optional
If omitted, the default ones are used.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31570>
2024-10-22 05:29:07 +00:00
Eric Engestrom
fa7c4b148b ci/b2c: allow B2C_DTB_URL to be set to an empty string to unset it
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31570>
2024-10-22 05:29:06 +00:00
David Heidelberg
3dbbc24cb3 ci/build: debian-build-testing should follow same limit as other jobs
This was temporarily measure to prevent long LTO builds get stuck.

Signed-off-by: David Heidelberg <david@ixit.cz>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31758>
2024-10-21 22:30:09 +00:00
Eric Engestrom
5a65c478dd ci: fix shader-db rules
All the post-merge pipelines are failing to be created with this error:

  'shader-db' job needs 'debian-build-testing' job, but 'debian-build-testing' is not in any previous stage

Like all the other test jobs, shader-db should never run in post-merge
pipelines.

Fixes: 0724b00dad ("ci: run shader-db only when one of the drivers it tests is modified")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31758>
2024-10-21 22:30:08 +00:00
Eric Engestrom
bb98949134 ci: rename "freedreno" farm to "google-freedreno"
There are 3 freedreno farms: google, collabora, and valve.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31709>
2024-10-21 09:36:05 +00:00
Eric Engestrom
85de24ebc5 ci/prepare-artifacts: use more than one thread when compressing the install tarball
Also, add `--quiet` to avoid partial progress output.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30416>
2024-10-21 08:52:23 +00:00
Eric Engestrom
e9998fdef5 ci/{deqp,piglit}-runner: make zstd respect FDO_CI_CONCURRENT when set, and fallback to the current "all the threads"
Also, expand `-q` to `--quiet` to be more explicit, and drop a stray
`-c` which did nothing except cancel out `--rm`.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30416>
2024-10-21 08:52:22 +00:00
David Heidelberg
4375133abb ci/alpine: stay trendy, Alpine flies on LLVM 19 now
Signed-off-by: David Heidelberg <david@ixit.cz>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31656>
2024-10-20 19:39:32 -07:00
Georg Lehmann
3120fec0c0 ci: remove selinux from containers
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31656>
2024-10-21 01:14:35 +00:00
Georg Lehmann
894c4f0c78 meson: remove selinux option
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31656>
2024-10-21 01:14:35 +00:00
Daniel Stone
ec95f07a1f ci: Quieten test execution
Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31602>
2024-10-20 11:32:43 +01:00
Daniel Stone
ef175ea594 ci: Make section emission really quiet
If you're emitting a section header under set -x, you will see:
+ section_start foo "foo"
+ x_off
[the section header]

This is kind of annoying. Instead of trying to squash it everywhere by
dancing around local set +x management, play some extremely stupid
tricks with shells to make sure we never emit it.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31602>
2024-10-20 11:32:43 +01:00
Daniel Stone
8316654dac ci: Quieten post-test cleanup
Ordinary people are not interested in reading this.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31602>
2024-10-20 11:32:43 +01:00
Daniel Stone
dd415e45bb ci/traces: Use sections to quiet execution
Only print the good bits by default.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31602>
2024-10-20 11:32:43 +01:00
Daniel Stone
5dcd5bfc3e ci/crosvm: Replace SCRIPT_DIR with SCRIPTS_DIR
This is what gets used everywhere else, so do that.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31602>
2024-10-20 11:32:43 +01:00
Daniel Stone
5edb11e9ea ci/crosvm: Make crosvm-runner safe for set +u
This is a really useful thing to have; the next commit cost me an
embarrassing amount of time for not having it.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31602>
2024-10-20 11:32:43 +01:00