Running the tests on AMD requires rebuilding the Docker image, unfortunately, so the pipelines for this MR won't work until the MR itself is accepted (and the image is regenerated).
-- v6: ci: Execute the tests.
From: Giovanni Mascellani gmascellani@codeweavers.com
In order for this to work it is expected that the Docker host exposes the devices in /dev/dri to the guest system, and that the render nodes have GID 800 (usually that would be the "render" group, but the GID for that group is dynamically assigned, so we explicitly agree on a fixed number). --- gitlab/build.yml | 12 +++++++++++- gitlab/image.docker | 3 ++- 2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/gitlab/build.yml b/gitlab/build.yml index 49e69d57..0a6fd9ec 100644 --- a/gitlab/build.yml +++ b/gitlab/build.yml @@ -25,5 +25,15 @@ paths: - artifacts
-build: +build-amd: extends: .build + tags: + - amd-gpu + variables: + VK_LOADER_DRIVERS_SELECT: 'radeon_*' + +build-llvmpipe: + extends: .build + allow_failure: true + variables: + VK_LOADER_DRIVERS_SELECT: 'lvp_*' diff --git a/gitlab/image.docker b/gitlab/image.docker index afc0dd1b..dd6923cb 100644 --- a/gitlab/image.docker +++ b/gitlab/image.docker @@ -35,6 +35,7 @@ RUN export DEBIAN_FRONTEND=noninteractive; \ cd ../.. && \ rm -rf wine && \ apt-get clean && \ - useradd -m gitlab + groupadd host-render -g 800 && \ + useradd -m gitlab -G host-render
USER gitlab
From: Giovanni Mascellani gmascellani@codeweavers.com
--- gitlab/build-linux | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gitlab/build-linux b/gitlab/build-linux index 1b7a7a5b..4162442d 100755 --- a/gitlab/build-linux +++ b/gitlab/build-linux @@ -11,9 +11,9 @@ set -Eeuxo pipefail rm -fr build mkdir build cd build -../configure --enable-demos && make -j$(nproc) && make -j$(nproc) crosstest || touch ../pipeline_failed +../configure --enable-demos && make -j$(nproc) && make -j$(nproc) crosstest && make -j$(nproc) check || touch ../pipeline_failed
mkdir -p ../artifacts/$COMMIT -rsync -Rr doc/* tests/*.exe ../artifacts/$COMMIT +rsync -Rr doc/* tests/*.exe test-suite.log tests/*.log tests/*/*.log ../artifacts/$COMMIT
git reset --hard
In order for this to work it is expected that the Docker host exposes the devices in /dev/dri to the guest system, and that the render nodes have GID 800 (usually that would be the "render" group, but the GID for that group is dynamically assigned, so we explicitly agree on a fixed number).
It might be helpful to document that in image.docker and/or the accompanying documentation (*cough*) instead of burying it in the git commit log.