vkd3d/gitlab/build.yml
Giovanni Mascellani e85e2417d5 ci: Build vkd3d with MinGW too.
Nowadays vkd3d is probably most commonly used compiled as PE rather then
ELF, so it makes sense to at least ensure that compilation succeeds.
In the future it would be nice to somehow test these binaries as well.
2023-09-27 22:34:18 +02:00

160 lines
4.3 KiB
YAML

.build-linux:
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-linux
- if [ -f pipeline_failed ] ; then exit 1 ; fi
artifacts:
when: always
paths:
- artifacts
build-radv-64:
extends: .build-linux
tags:
- amd-gpu
variables:
VK_LOADER_DRIVERS_SELECT: 'radeon_*'
VKD3D_SHADER_CONFIG: 'force_validation'
build-llvmpipe-64:
extends: .build-linux
allow_failure: true
variables:
VK_LOADER_DRIVERS_SELECT: 'lvp_*'
VKD3D_SHADER_CONFIG: 'force_validation'
build-radv-32:
extends: .build-linux
tags:
- amd-gpu
variables:
VK_LOADER_DRIVERS_SELECT: 'radeon_*'
CC: 'gcc -m32'
VKD3D_SHADER_CONFIG: 'force_validation'
build-llvmpipe-32:
extends: .build-linux
allow_failure: true
variables:
VK_LOADER_DRIVERS_SELECT: 'lvp_*'
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-mingw:
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
- git rebase $CI_MERGE_REQUEST_DIFF_BASE_SHA --exec ./gitlab/build-mingw
- if [ -f pipeline_failed ] ; then exit 1 ; fi
artifacts:
when: always
paths:
- artifacts
build-mingw-64:
extends: .build-mingw
variables:
HOST: "x86_64-w64-mingw32"
build-mingw-32:
extends: .build-mingw
variables:
HOST: "i686-w64-mingw32"
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"
VKD3D_SHADER_CONFIG: 'force_validation'
artifacts:
when: always
paths:
- artifacts