Commit Graph

261 Commits

Author SHA1 Message Date
Guilherme Gallo
8f20eb849b ci/android: add missing pre/post build scripts
The android_build.sh script was not calling the container_pre_build.sh
and container_post_build.sh, we will need that to make the structural
tagging early checking to work. And also do the same cleanup and
configuration made for other container build jobs.

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33421>
2025-02-28 01:33:34 +00:00
Valentine Burley
5b65bbf72c ci: Simplify downloading kernel for crosvm
Directly download the kernel instead of using the
download-prebuilt-kernel.sh script.
Save the kernel to /kernel for clarity, replacing the previous
/lava-files directory.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33606>
2025-02-21 14:52:56 +00:00
Guilherme Gallo
a663f97d2d ci: Properly clean up rustup
Use `rustup self uninstall -y` instead of manually removing folders to
ensure a proper cleanup of the rustup installation, including cargo and
init command injections in shell rc files.

Failing to do so can cause issues, such as bash failing to run in a `set
-e` environment due to a missing `$HOME/.cargo/env`, for example.

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33519>
2025-02-19 05:08:53 +00:00
Valentine Burley
612f56cb5e ci/container: Include ANGLE in the arm64 test-gl container
Build ANGLE in the arm64 test-gl containers.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33542>
2025-02-17 09:07:48 +00:00
Valentine Burley
ffdfb0539b ci/android: Add build section for Cuttlefish
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Reviewed-by: Antonio Ospite <None>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33467>
2025-02-12 09:03:48 +00:00
Valentine Burley
05021a1786 ci/angle: Rework building ANGLE (again)
Make setting the ANGLE_ARCH variable optional by providing a default
based on DEBIAN_ARCH, while keeping it possible to override it, which is
expected to be necessary for the Android-arm64 build.

Exclude unnecessary third party dependencies in the .gclient file, which
allows us to delete our first local patch. Thanks to Yuly Novikov for the
suggestion.

Use -no-history for gclient sync, which is equivalent to git's --depth=1
argument. This greatly speeds up the process of fetching sources.

Thanks to this speedup fetching third_party/catapult is no longer an
issue, allowing us to remove our second local patch.

Since we're no longer applying local patches, use ANGLE_REV and
/angle/version as the base for our version check on Android.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Reviewed-by: Antonio Ospite <None>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33467>
2025-02-12 09:03:48 +00:00
Daniel Stone
09c38c14ef ci: Build libdrm for Android host builds
Signed-off-by: Daniel Stone <daniels@collabora.com>
Acked-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32720>
2025-02-11 12:33:23 +00:00
Valentine Burley
0fc4aef848 ci/android: Build and use ANGLE
Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Reviewed-by: Eric Engestrom <None>
Reviewed-by: Antonio Ospite <None>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33377>
2025-02-06 11:58:33 +00:00
Valentine Burley
e0f0be6fc8 ci/android: Don't build desktop GL CTS
Android officially only supports GLES, and we don't need the desktop
GL CTS in CI.

Signed-off-by: Valentine Burley <valentine.burley@collabora.com>
Reviewed-by: Eric Engestrom <None>
Reviewed-by: Antonio Ospite <None>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33377>
2025-02-06 11:58:33 +00:00
Martin Roukala (né Peres)
596cfbbed1 ci/debian/test-vk: trim down the container on a per-arch basis
Not every architectures has jobs requiring every features provided by
the VK test container, so let's trim it down a bit by disabling the
features that are not needed.

Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32927>
2025-02-05 04:35:07 +00:00
Martin Roukala (né Peres)
39969409f6 ci/debian/test-vk: remove software-properties-common
This is not needed anymore (as of 85dace1c0b) and it tries to
pull systemd which breaks the build.

Fixes: 85dace1c0b ("gitlab-ci: remove software-properties-common")
Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32927>
2025-02-05 04:35:07 +00:00
Daniel Stone
9c5f0de7ac ci: Add debian/arm32_test-* images
Same as arm64, but with fewer bits.

v2 (Martin Roukala):
 - Dropped some LAVA-specific changes
 - Use FDO_DISTRIBUTION_PLATFORM to select the platform

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32927>
2025-02-05 04:35:07 +00:00
Daniel Stone
175b6d02ea ci: Move apitrace to test-base container
Instead of building apitrace in each of test-gl and test-vk, just build
it straight into test-base.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32927>
2025-02-05 04:35:07 +00:00
Daniel Stone
3be9d71537 ci: Move common testing packages to test-base
Both test-gl and test-vk install a bunch of stuff which is required to
just run tests. Instead of copy and pasting a bunch of random stuff into
derived containers, just keep it in the base container. Technically this
makes both containers very slightly larger, but the additions here pale
into comparison with 700MB of mostly-unused Proton, 400MB of deqp-vk
mustpass, etc.

v2 (Martin Roukala):
  * Move spirv-tools to the list of dependencies as it is needed by
    python3-renderdoc

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32927>
2025-02-05 04:35:07 +00:00
Daniel Stone
3693e52cf6 ci: Fix kernel section nesting
This got broken when the section switches were moved to separate files.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Eric Engestrom <None>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33287>
2025-01-30 16:56:03 +00:00
Antonio Ospite
4ac5d7c0bd ci/android: pass --allow-downgrades when installing cuttlefish host tools
Pass --allow-downgrades when installing cuttlefish host tools just to
cover the case when the script is run locally.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33261>
2025-01-29 16:36:59 +00:00
Antonio Ospite
909f837ecf ci/android: update CUTTLEFISH_BUILD_NUMBER
Update CUTTLEFISH_BUILD_NUMBER to use a cuttlefish image that has the
`mesa_swrast` GPU mode which uses llvmpipe for GL and lavapipe for
Vulkan.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33261>
2025-01-29 16:36:58 +00:00
Daniel Stone
101065642d ci/debian: Upgrade Debian images to LLVM 19
LLVM 15 is pretty old, and notably not supported by either ANGLE nor
Skia anymore. So let's move up to LLVM 19 using packages provided by
LLVM themselves, apart from PPC and ARMv7 which don't have builds.

The Skia build now requires a bunch of new warning exclusions; hopefully
most of these are no longer needed when we can upgrade Skia shortly.

The ci-deb-repo revision has also been bumped to get us a new version of
xtensor which builds with LLVM 19, and a version of spirv-tools which
also works with LLVM 19.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Closes: mesa/mesa#11538
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33137>
2025-01-29 03:23:28 +00:00
Daniel Stone
55e9fe9d37 ci: Require LLVM_VERSION to be set explicitly
Stop falling back to 15 in random places; make sure it's set clearly
every time we want to use it.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33137>
2025-01-29 03:23:28 +00:00
Antonio Ospite
876c4513a5 ci/android: rename variable ANDROID_NDK to ANDROID_NDK_VERSION
Rename the variable ANDROID_NDK to ANDROID_NDK_VERSION and only use it
to specify the version itself.

This makes it consistent with ANDROID_SDK_VERSION and it is also in
preparation for using the same variable to build ANGLE in the future.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33188>
2025-01-24 14:15:22 +00:00
Antonio Ospite
4b2996e749 ci/android: use ANDROID_SDK_VERSION when building deqp components
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33188>
2025-01-24 14:15:22 +00:00
Juan A. Suarez Romero
37ee035e42 ci/build: add ubsan build jobs
This adds build jobs to support Undefined Behaviour Sanitizer (UBSan),
both in x86_64 and arm64.

Reviewed-by: Eric Engestrom <eric@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30880>
2025-01-09 17:06:07 +00:00
Antonio Ospite
6df997f6bc ci/android: upgrade DEBIAN_TEST_ANDROID_TAG
Also add a note in .gitlab-ci/container/debian/x86_64_test-android.sh
that DEBIAN_TEST_ANDROID_TAG needs to be updated when that file changes
too.

Reviewed-by: Eric Engestrom <None>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30895>
2025-01-02 19:31:41 +00:00
Antonio Ospite
8252ffbf11 ci/android: use a custom kernel when launching cuttlefish
Use a custom kernel when launching cuttlefish, this is needed for
-gpu_mode=venus.

And while at it also clean up the state from previous runs, this seems
to be required when passing a custom kernel.

In this change also pass -enable_bootanimation=false which makes
drm_virgl work, and pass -enable_minimal_mode=true to avoid using some
features which are not really needed.

Note that the file number limit has to be increased too in
.gitlab-ci/cuttlefish-runner.sh for cuttlefish to work properly.

Reviewed-by: Eric Engestrom <None>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30895>
2025-01-02 19:31:41 +00:00
Antonio Ospite
5d539f1a30 ci/android: get custom cuttlefish images from the S3
To test mesa on cuttlefish some special images tailored for upstream
mesa are needed, in particular these images may set properties or add
functionality that enable new use cases for upstream mesa on Android,
like for instance using venus via the vulkan.virtio mesa driver.

So instead of downloading the standard images from Google, get those
custom images from s3.freedesktop.org.

Reviewed-by: Eric Engestrom <None>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30895>
2025-01-02 19:31:41 +00:00
Antonio Ospite
92488c4598 ci/android: add sudo to EPHEMERAL deps for debian/x86_64_test-android.sh
The ./tools/buildutils/build_packages.sh script used by the
android-cuttlefish project built in debian/x86_64_test-android.sh uses
sudo, so install that as an EPHEMERAL dependency.

Also set SUDO_FORCE_REMOVE=yes when removing sudo to avoid some errors.

Reviewed-by: Eric Engestrom <None>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30895>
2025-01-02 19:31:41 +00:00
Antonio Ospite
711c9adb30 ci/android: update version of cuttlefish host tools
Update the version of cuttlefish host tools.

In particular the new version includes the change to be able to increase
the file number limit to 32k, as explained in
https://github.com/google/android-cuttlefish/pull/675

Reviewed-by: Eric Engestrom <None>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30895>
2025-01-02 19:31:41 +00:00
Antonio Ospite
a90d771724 ci/android: build deqp for DEQP_API=VK
Build deqp for DEQP_API=VK by passing -DDEQP_ANDROID_EXE=ON.

Reviewed-by: Eric Engestrom <None>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30895>
2025-01-02 19:31:41 +00:00
Antonio Ospite
88dfda7f0a ci/android: add a script to build LLVM libraries for Android
In order to build the mesa llvmpipe driver for Android, LLVM libraries
for Android are needed, but building them each time a new upstream mesa
is built would be too much overhead.

So add a script to build LLVM libraries for Android and call it from the
debian/android_build job. The actual build will be performed only when
necessary and the resulting artifact will be uploaded to the S3 bucket
to be re-used when building mesa for Android.

The build process follows what has been documented in
docs/drivers/llvmpipe.rst

Reviewed-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31093>
2024-12-20 04:40:52 +00:00
Antonio Ospite
f1f4570402 ci/android: unset compiler env vars in debian/android_build.sh
Unset the compiler env vars in debian/android_build.sh used to
cross-build libelf for Android, to prevents those env vars to
inadvertently affect subsequent commands that might want to build for
the native host after the cross-builds.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31093>
2024-12-20 04:40:52 +00:00
Eric Engestrom
beab815670 ci/deqp: add a deqp-vk build on the main branch
To be able to run new tests as soon as they are merged, instead of
having to wait for the next official CTS release

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28168>
2024-11-27 20:38:05 +00:00
Antonio Ospite
3bdb77e378 ci/deqp: replace local android patches with upstream solution
In commit a34982063 (Support standalone executable builds on Android,
2024-09-12) upstream VK-GL-CTS added support for building deqp as an
executable command for Android, this change is included in the vulkan
branch used by build-deqp.sh so the custom patches can be dropped for
the Vulkan CTS build.

After that and by passing -DDEQP_ANDROID_EXE=ON deqp can now be built
with DEQP_API=tools.

[Eric]
Note that the upstream solution seems to be broken on EGL, so GL & GLES
continue to use the local android patches; for more details, see:
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28168#note_2676128

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28168>
2024-11-27 20:38:05 +00:00
Eric Engestrom
c20e9868bf ci/container: setup sections in all image builds
Several of them don't use sections yet, but let's just have it
everywhere to avoid weird surprised when moving code around and suddenly
a section is used.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32299>
2024-11-22 11:40:56 +01:00
Eric Engestrom
84e855953c ci/deqp: add build of main branch
For now, this just contains the tools unrelated to any API being tested
(`testlog-to-{xml,csv,junit})`.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32250>
2024-11-22 10:16:49 +00:00
Eric Engestrom
9a689b15d9 ci/deqp: avoid downloading 1.47 GiB multiple times
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32250>
2024-11-22 10:16:49 +00:00
Eric Engestrom
05b2024c36 ci/container: close debian_{setup,cleanup} sections
Allowing users to collapse them without hiding everything.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32241>
2024-11-21 19:59:56 +00:00
Eric Engestrom
bc59acee8e ci/container: move wayland build section into the script itself
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32241>
2024-11-21 19:59:56 +00:00
Eric Engestrom
b18cb0cb31 ci/container: move vulkan-validation build section into the script itself
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32241>
2024-11-21 19:59:56 +00:00
Eric Engestrom
5655a30412 ci/container: move vkd3d-proton build section into the script itself
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32241>
2024-11-21 19:59:56 +00:00
Eric Engestrom
b791074f2e ci/container: move rust build section into the script itself
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32241>
2024-11-21 19:59:55 +00:00
Eric Engestrom
bc5ae2e5cb ci/container: move piglit build section into the script itself
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32241>
2024-11-21 19:59:55 +00:00
Eric Engestrom
999cc1a86f ci/container: move ninetests build section into the script itself
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32241>
2024-11-21 19:59:55 +00:00
Eric Engestrom
500c1c2d7c ci/container: move mold build section into the script itself
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32241>
2024-11-21 19:59:55 +00:00
Eric Engestrom
0a7ab7da1a ci/container: move llvm-spirv build section into the script itself
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32241>
2024-11-21 19:59:55 +00:00
Eric Engestrom
0cebd6b097 ci/container: move libclc build section into the script itself
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32241>
2024-11-21 19:59:55 +00:00
Eric Engestrom
5bfd49215b ci/container: move gfxreconstruct build section into the script itself
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32241>
2024-11-21 19:59:55 +00:00
Eric Engestrom
493bebb9e9 ci/container: move fossilize build section into the script itself
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32241>
2024-11-21 19:59:55 +00:00
Eric Engestrom
a824381408 ci/container: move deqp-runner build section into the script itself
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32241>
2024-11-21 19:59:55 +00:00
Eric Engestrom
33ea8d3b81 ci/container: move crosvm build section into the script itself
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32241>
2024-11-21 19:59:55 +00:00
Eric Engestrom
07de2140a3 ci/container: move apitrace build section into the script itself
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32241>
2024-11-21 19:59:55 +00:00