diff --git a/gitlab/build-crosstest b/gitlab/build-crosstest new file mode 100755 index 00000000..99997ffa --- /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 4162442d..b6071ef9 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 e423330e..401bdc5a 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 7cc88f1f..e78e7081 100644 --- a/gitlab/build.yml +++ b/gitlab/build.yml @@ -56,6 +56,32 @@ build-llvmpipe-32: CC: 'gcc -m32' VKD3D_SHADER_CONFIG: 'force_validation' +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: