diff --git a/gitlab/build-mingw b/gitlab/build-mingw new file mode 100755 index 00000000..0f9ab3a6 --- /dev/null +++ b/gitlab/build-mingw @@ -0,0 +1,24 @@ +#!/bin/bash + +echo "Building $(git log -1)" +echo "---" + +COMMIT=$(printf '%03d-%s' $(git cherry $CI_MERGE_REQUEST_DIFF_BASE_SHA HEAD^ | wc -l) $(git rev-parse --short HEAD)) + +set -Eeuxo pipefail + +./autogen.sh +rm -fr build +mkdir build +cd build +mkdir vulkan-headers +cp -r /usr/include/vulkan /usr/include/vk_video /usr/include/spirv vulkan-headers +../configure --enable-demos --disable-doxygen-doc --without-ncurses --host=$HOST SONAME_LIBVULKAN="vulkan-1.dll" CPPFLAGS="-I$PWD/vulkan-headers" CFLAGS="-g -O2 -Wno-format -Wno-array-bounds" LDFLAGS="-static-libgcc" && \ + make -j$(nproc) && \ + make -j$(nproc) install DESTDIR="$PWD/destdir" || \ + touch ../pipeline_failed + +mkdir -p ../artifacts/$COMMIT +cp destdir/usr/local/bin/* ../artifacts/$COMMIT + +git reset --hard diff --git a/gitlab/build.yml b/gitlab/build.yml index e78e7081..6a260510 100644 --- a/gitlab/build.yml +++ b/gitlab/build.yml @@ -82,6 +82,41 @@ build-crosstest: 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: