Mostly to avoid polluting other logs and artifacts, and also to avoid recompiling crosstests over and over.
From: Giovanni Mascellani gmascellani@codeweavers.com
Mostly to avoid polluting other logs and artifacts, and also to avoid recompiling crosstests over and over. --- gitlab/build-crosstest | 19 +++++++++++++++++++ gitlab/build-linux | 4 ++-- gitlab/build-mac | 4 ++-- gitlab/build.yml | 26 ++++++++++++++++++++++++++ 4 files changed, 49 insertions(+), 4 deletions(-) create mode 100755 gitlab/build-crosstest
diff --git a/gitlab/build-crosstest b/gitlab/build-crosstest new file mode 100755 index 000000000..99997ffa8 --- /dev/null +++ b/gitlab/build-crosstest @@ -0,0 +1,19 @@ +#!/bin/bash + +echo "Building $(git log -1)" +echo "---" + +COMMIT=$(git rev-parse --short HEAD) + +set -Eeuxo pipefail + +./autogen.sh +rm -fr build +mkdir build +cd build +../configure && make -j$(nproc) crosstest || touch ../pipeline_failed + +mkdir -p ../artifacts/$COMMIT +rsync -Rr tests/*.exe ../artifacts/$COMMIT + +git reset --hard diff --git a/gitlab/build-linux b/gitlab/build-linux index 4162442d8..b6071ef9c 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 && make -j$(nproc) check || touch ../pipeline_failed +../configure --enable-demos && make -j$(nproc) && make -j$(nproc) check || touch ../pipeline_failed
mkdir -p ../artifacts/$COMMIT -rsync -Rr doc/* tests/*.exe test-suite.log tests/*.log tests/*/*.log ../artifacts/$COMMIT +rsync -Rr doc/* test-suite.log tests/*.log tests/*/*.log ../artifacts/$COMMIT
git reset --hard diff --git a/gitlab/build-mac b/gitlab/build-mac index e423330ee..401bdc5a4 100755 --- a/gitlab/build-mac +++ b/gitlab/build-mac @@ -11,9 +11,9 @@ set -Eeuxo pipefail rm -fr build mkdir build cd build -../configure && make -j$(sysctl -n hw.ncpu) && make -j$(sysctl -n hw.ncpu) crosstest && make -j$(sysctl -n hw.ncpu) check || touch ../pipeline_failed +../configure && make -j$(sysctl -n hw.ncpu) && make -j$(sysctl -n hw.ncpu) check || touch ../pipeline_failed
mkdir -p ../artifacts/$COMMIT -rsync -Rr tests/*.exe test-suite.log tests/*.log tests/*/*.log ../artifacts/$COMMIT +rsync -Rr test-suite.log tests/*.log tests/*/*.log ../artifacts/$COMMIT
git reset --hard diff --git a/gitlab/build.yml b/gitlab/build.yml index 0eac7722c..ca1b7eaac 100644 --- a/gitlab/build.yml +++ b/gitlab/build.yml @@ -52,6 +52,32 @@ build-llvmpipe-32: VK_LOADER_DRIVERS_SELECT: 'lvp_*' CC: 'gcc -m32'
+build-crosstest: + stage: build + rules: + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' + image: $CI_REGISTRY/wine/vkd3d:debian-bookworm + interruptible: true + needs: + - job: build-image + optional: true + dependencies: [] + script: + - git config --global --add safe.directory $CI_PROJECT_DIR + - git clean -fdx + - git reset --hard + - rm -fr .git/rebase-merge + - mkdir artifacts + - cat /proc/cpuinfo > artifacts/cpuinfo.txt + - cat /proc/meminfo > artifacts/meminfo.txt + - vulkaninfo > artifacts/vulkaninfo.txt + - git rebase $CI_MERGE_REQUEST_DIFF_BASE_SHA --exec ./gitlab/build-crosstest + - if [ -f pipeline_failed ] ; then exit 1 ; fi + artifacts: + when: always + paths: + - artifacts + build-mac: stage: build rules:
From: Giovanni Mascellani gmascellani@codeweavers.com
--- gitlab/build-mac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gitlab/build-mac b/gitlab/build-mac index 401bdc5a4..f5ba045a8 100755 --- a/gitlab/build-mac +++ b/gitlab/build-mac @@ -11,7 +11,7 @@ set -Eeuxo pipefail rm -fr build mkdir build cd build -../configure && make -j$(sysctl -n hw.ncpu) && make -j$(sysctl -n hw.ncpu) check || touch ../pipeline_failed +../configure --enable-demos && make -j$(sysctl -n hw.ncpu) && make -j$(sysctl -n hw.ncpu) check || touch ../pipeline_failed
mkdir -p ../artifacts/$COMMIT rsync -Rr test-suite.log tests/*.log tests/*/*.log ../artifacts/$COMMIT
Subject: [PATCH 2/2] ci: Compile demos on macOS.
I don't think that can work; the demos use either libxcb or Win32:
configure: error: libxcb is required for demos. + touch ../pipeline_failed
It might be nice to get these working on macOS, but I suspect it would require some Objective-C code.
On Fri Sep 22 08:41:18 2023 +0000, Henri Verbeet wrote:
Subject: [PATCH 2/2] ci: Compile demos on macOS.
I don't think that can work; the demos use either libxcb or Win32:
configure: error: libxcb is required for demos. + touch ../pipeline_failed
It might be nice to get these working on macOS, but I suspect it would require some Objective-C code.
Yeah, that's right. My intention was to mark this MR as draft to check that it would actually work before hitting a reviewer, but I forgot that bit.