mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-09-13 09:16:14 -07:00
ci: Run the tests on macOS.
This commit is contained in:
parent
45541dd9b2
commit
d72c91ef97
Notes:
Alexandre Julliard
2023-09-14 22:20:40 +02:00
Approved-by: Henri Verbeet (@hverbeet) Approved-by: Alexandre Julliard (@julliard) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/328
@ -14,7 +14,8 @@ The file build.yml contains the actual testing targets. Currently
|
||||
vkd3d is tested on Linux, on x86-64 and i386, each architecture with
|
||||
two different Vulkan drivers (both from Mesa): llvmpipe (a software
|
||||
implementation) and RADV (a hardware implementation backed by an AMD
|
||||
GPU). The testing logs are available as CI artifacts.
|
||||
GPU); and on macOS, on Intel, using MoltenVK as Vulkan driver. The
|
||||
testing logs are available as CI artifacts.
|
||||
|
||||
Some custom runner configuration is required in order to run the tests
|
||||
on an AMD GPU. Specifically, a runner tagged with `amd-gpu' must be
|
||||
@ -40,3 +41,11 @@ available with the following features:
|
||||
is created dynamically, therefore has no predictable GID: the use
|
||||
of a fixed GID enables the guest system to be set up so that the
|
||||
user running the tests can access the render nodes.
|
||||
|
||||
A runner on an Intel macOS system tagged with `mac' must also be
|
||||
available to run the macOS tests. Unfortunately a system like Docker
|
||||
is not available in this case to provide an isolated standard
|
||||
environment for running the tests. All the software required to
|
||||
compile and run the tests will therefore have to be installed directly
|
||||
on the host system. Complete instructions to setup the macOS are
|
||||
currently not available.
|
||||
|
19
gitlab/build-mac
Executable file
19
gitlab/build-mac
Executable 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$(sysctl -n hw.ncpu) && make -j$(sysctl -n hw.ncpu) crosstest && 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
|
||||
|
||||
git reset --hard
|
@ -1,4 +1,4 @@
|
||||
.build:
|
||||
.build-linux:
|
||||
stage: build
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
||||
@ -26,20 +26,20 @@
|
||||
- artifacts
|
||||
|
||||
build-radv-64:
|
||||
extends: .build
|
||||
extends: .build-linux
|
||||
tags:
|
||||
- amd-gpu
|
||||
variables:
|
||||
VK_LOADER_DRIVERS_SELECT: 'radeon_*'
|
||||
|
||||
build-llvmpipe-64:
|
||||
extends: .build
|
||||
extends: .build-linux
|
||||
allow_failure: true
|
||||
variables:
|
||||
VK_LOADER_DRIVERS_SELECT: 'lvp_*'
|
||||
|
||||
build-radv-32:
|
||||
extends: .build
|
||||
extends: .build-linux
|
||||
tags:
|
||||
- amd-gpu
|
||||
variables:
|
||||
@ -47,8 +47,48 @@ build-radv-32:
|
||||
CC: 'gcc -m32'
|
||||
|
||||
build-llvmpipe-32:
|
||||
extends: .build
|
||||
extends: .build-linux
|
||||
allow_failure: true
|
||||
variables:
|
||||
VK_LOADER_DRIVERS_SELECT: 'lvp_*'
|
||||
CC: 'gcc -m32'
|
||||
|
||||
build-mac:
|
||||
stage: build
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
||||
allow_failure: true
|
||||
interruptible: true
|
||||
needs: []
|
||||
dependencies: []
|
||||
tags:
|
||||
- mac
|
||||
script:
|
||||
- git config --global --add safe.directory $CI_PROJECT_DIR
|
||||
- git clean -fdx
|
||||
- git reset --hard
|
||||
- rm -fr .git/rebase-merge
|
||||
# We use a custom ICD which is not marked as a portability driver,
|
||||
# so that test programs are not confused.
|
||||
- ./gitlab/patch_moltenvk_icd.sh
|
||||
- export VK_DRIVER_FILES="$PWD/gitlab/MoltenVK_icd.json"
|
||||
- mkdir artifacts
|
||||
- system_profiler SPSoftwareDataType SPHardwareDataType > artifacts/systeminfo.txt
|
||||
- vulkaninfo > artifacts/vulkaninfo.txt
|
||||
- export PATH="/usr/local/opt/bison/bin:/usr/local/opt/flex/bin:$PATH"
|
||||
- git clone --depth 1 --branch wine-3.21 https://gitlab.winehq.org/wine/wine.git
|
||||
- cd wine
|
||||
- mkdir build
|
||||
- cd build
|
||||
- ../configure --enable-win64 --without-x --without-freetype
|
||||
- make tools/widl/widl
|
||||
- cd ../..
|
||||
- export PATH="$PWD/wine/build/tools/widl:$PATH"
|
||||
- git rebase $CI_MERGE_REQUEST_DIFF_BASE_SHA --exec ./gitlab/build-mac
|
||||
- if [ -f pipeline_failed ] ; then exit 1 ; fi
|
||||
variables:
|
||||
VKD3D_DISABLE_EXTENSIONS: "VK_EXT_descriptor_indexing"
|
||||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
- artifacts
|
||||
|
12
gitlab/patch_moltenvk_icd.sh
Executable file
12
gitlab/patch_moltenvk_icd.sh
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
|
||||
BASE_PATH="/usr/local/opt/molten-vk/share/vulkan/icd.d"
|
||||
|
||||
cp "$BASE_PATH/MoltenVK_icd.json" gitlab/MoltenVK_icd.json
|
||||
|
||||
# The driver path is relative
|
||||
sed -i -e 's|"library_path" *: "|"library_path" : "'"$BASE_PATH/"'|g' gitlab/MoltenVK_icd.json
|
||||
|
||||
# We pretend this is not a portability driver, otherwise vkd3d won't
|
||||
# find it
|
||||
sed -i -e 's|"is_portability_driver" *: *true|"is_portability_driver" : false|g' gitlab/MoltenVK_icd.json
|
Loading…
Reference in New Issue
Block a user