From: Giovanni Mascellani gmascellani@codeweavers.com
--- .gitlab-ci.yml | 115 +++++++++++++++++++++++++++++++++++++++++++++++++ ci/Dockerfile | 16 +++++++ 2 files changed, 131 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100644 ci/Dockerfile
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000..de8588246 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,115 @@ +image: giomasce/vkd3d + +stages: + - build + - test + +build64: + stage: build + script: + - ./autogen.sh + - mkdir build + - cd build + - ../configure --enable-demos + - make -j$(nproc) + - make -j$(nproc) crosstest + artifacts: + when: always + paths: + - . + +test64-amd: + stage: test + dependencies: + - build64 + needs: + - build64 + tags: + - amd-gpu + script: + - mkdir info + - cat /proc/cpuinfo > info/cpuinfo.txt + - cat /proc/meminfo > info/meminfo.txt + - vulkaninfo > info/vulkaninfo.txt + - cd build + - VKD3D_VULKAN_DEVICE_FILTER=AMD VKD3D_VULKAN_DEVICE=0 make -j$(nproc) check + artifacts: + when: always + paths: + - info + - build + +test64-llvmpipe: + stage: test + dependencies: + - build64 + needs: + - build64 + allow_failure: true + script: + - mkdir info + - cat /proc/cpuinfo > info/cpuinfo.txt + - cat /proc/meminfo > info/meminfo.txt + - vulkaninfo > info/vulkaninfo.txt + - cd build + - VKD3D_VULKAN_DEVICE_FILTER=llvmpipe VKD3D_VULKAN_DEVICE=0 make -j$(nproc) check + artifacts: + when: always + paths: + - info + - build + +build32: + stage: build + script: + - ./autogen.sh + - mkdir build + - cd build + - ../configure --enable-demos CC="gcc -m32" + - make -j$(nproc) + - make -j$(nproc) crosstest + artifacts: + when: always + paths: + - . + +test32-amd: + stage: test + dependencies: + - build32 + needs: + - build32 + tags: + - amd-gpu + script: + - mkdir info + - cat /proc/cpuinfo > info/cpuinfo.txt + - cat /proc/meminfo > info/meminfo.txt + - vulkaninfo > info/vulkaninfo.txt + - cd build + - VKD3D_VULKAN_DEVICE_FILTER=AMD VKD3D_VULKAN_DEVICE=0 make -j$(nproc) check + artifacts: + when: always + paths: + - info + - build + +test32-llvmpipe: + stage: test + dependencies: + - build32 + needs: + - build32 + allow_failure: true + script: + - mkdir info + - cat /proc/cpuinfo > info/cpuinfo.txt + - cat /proc/meminfo > info/meminfo.txt + - vulkaninfo > info/vulkaninfo.txt + - cd build + - VKD3D_VULKAN_DEVICE_FILTER=llvmpipe VKD3D_VULKAN_DEVICE=0 make -j$(nproc) check + artifacts: + when: always + paths: + - info + - build diff --git a/ci/Dockerfile b/ci/Dockerfile new file mode 100644 index 000000000..b58b33f5c --- /dev/null +++ b/ci/Dockerfile @@ -0,0 +1,16 @@ +FROM debian:bookworm +ENV DEBIAN_FRONTEND=noninteractive + +RUN rm /etc/apt/sources.list.d/* +RUN dpkg --add-architecture i386 +RUN printf "deb [arch=amd64,i386] http://deb.debian.org/debian bookworm main\n" > /etc/apt/sources.list +RUN apt-get update +RUN apt-get install -y eatmydata +RUN eatmydata apt-get dist-upgrade -y +RUN eatmydata apt-get install -y build-essential pkg-config locales mesa-vulkan-drivers vulkan-tools autoconf automake libtool flex bison libvulkan-dev spirv-headers gcc-mingw-w64 libncurses-dev libxcb1-dev gcc-multilib doxygen doxygen-latex graphviz libvulkan-dev:i386 mesa-vulkan-drivers:i386 libncurses-dev:i386 libxcb-util-dev libxcb-icccm4-dev libxcb-keysyms1-dev libxcb1-dev:i386 libxcb-util-dev:i386 libxcb-icccm4-dev:i386 libxcb-keysyms1-dev:i386 git +RUN echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen && locale-gen +ENV LANG=en_US.UTF-8 + +# Join everything in a single RUN so that the intermediate state with +# the Wine sources is not saved +RUN cd /root && git clone --depth 1 --branch wine-3.21 https://gitlab.winehq.org/wine/wine.git && cd wine && mkdir build && cd build && ../configure --without-x --without-freetype && make tools/widl/widl && cp tools/widl/widl /usr/local/bin && rm -fr /root/wine