ci: Build crosstests in a dedicated CI job.

Mostly to avoid polluting other logs and artifacts, and also to avoid
recompiling crosstests over and over. Eventually the artifacts produced
at this stage should be run on native Windows.
This commit is contained in:
Giovanni Mascellani 2023-09-21 15:35:11 +02:00 committed by Alexandre Julliard
parent 74d79c7e45
commit 81da13b9e2
Notes: Alexandre Julliard 2023-09-26 22:47:59 +02:00
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/359
4 changed files with 49 additions and 4 deletions

19
gitlab/build-crosstest Executable file
View File

@ -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

View File

@ -11,9 +11,9 @@ set -Eeuxo pipefail
rm -fr build rm -fr build
mkdir build mkdir build
cd 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 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 git reset --hard

View File

@ -11,9 +11,9 @@ set -Eeuxo pipefail
rm -fr build rm -fr build
mkdir build mkdir build
cd 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 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 git reset --hard

View File

@ -56,6 +56,32 @@ build-llvmpipe-32:
CC: 'gcc -m32' CC: 'gcc -m32'
VKD3D_SHADER_CONFIG: 'force_validation' 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: build-mac:
stage: build stage: build
rules: rules: