vkd3d-shader/hlsl: Handle error instructions in add_shader_compilation().
[vkd3d.git] / gitlab / build.yml
blob1cb7d6e20025bea668c730900bf8f31834e8aad8
1 .build-linux:
2   stage: build
3   rules:
4     - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
5   image: $CI_REGISTRY/wine/vkd3d:debian-bookworm
6   interruptible: true
7   needs:
8     - job: image-linux
9       optional: true
10   dependencies: []
11   script:
12     - git config --global --add safe.directory $CI_PROJECT_DIR
13     - git clean -fdx
14     - git reset --hard
15     - rm -fr .git/rebase-merge
16     - mkdir artifacts
17     - cat /proc/cpuinfo > artifacts/cpuinfo.txt
18     - cat /proc/meminfo > artifacts/meminfo.txt
19     - vulkaninfo > artifacts/vulkaninfo.txt
20     - git rebase $CI_MERGE_REQUEST_DIFF_BASE_SHA --exec ./gitlab/build-linux
21     - if [ -f build_failed ] ; then exit 1 ; fi
22     - if [ -f tests_failed ] ; then exit 2 ; fi
23   artifacts:
24     when: always
25     paths:
26       - artifacts
28 build-radv-64:
29   extends: .build-linux
30   tags:
31     - amd-gpu
32   variables:
33     VK_LOADER_DRIVERS_SELECT: 'radeon_*'
34     VKD3D_SHADER_CONFIG: 'force_validation'
36 build-llvmpipe-64:
37   extends: .build-linux
38   allow_failure:
39     exit_codes:
40       - 2
41   variables:
42     VK_LOADER_DRIVERS_SELECT: 'lvp_*'
43     VKD3D_SHADER_CONFIG: 'force_validation'
45 build-radv-32:
46   extends: .build-linux
47   tags:
48     - amd-gpu
49   variables:
50     VK_LOADER_DRIVERS_SELECT: 'radeon_*'
51     CC: 'i686-linux-gnu-gcc'
52     VKD3D_SHADER_CONFIG: 'force_validation'
54 build-llvmpipe-32:
55   extends: .build-linux
56   allow_failure:
57     exit_codes:
58       - 2
59   variables:
60     VK_LOADER_DRIVERS_SELECT: 'lvp_*'
61     CC: 'i686-linux-gnu-gcc'
62     VKD3D_SHADER_CONFIG: 'force_validation'
64 build-llvmpipe-64-mesa24:
65   extends: .build-linux
66   variables:
67     VK_DRIVER_FILES: '/opt/mesa24/share/vulkan/icd.d/lvp_icd.x86_64.json'
68     LD_LIBRARY_PATH: '/opt/mesa24/lib/x86_64-linux-gnu'
69     __EGL_VENDOR_LIBRARY_FILENAMES: '/opt/mesa24/share/glvnd/egl_vendor.d/50_mesa.json'
70     VKD3D_SHADER_CONFIG: 'force_validation'
72 build-crosstest:
73   stage: build
74   rules:
75     - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
76   image: $CI_REGISTRY/wine/vkd3d:debian-bookworm
77   interruptible: true
78   needs:
79     - job: image-linux
80       optional: true
81   dependencies: []
82   script:
83     - git config --global --add safe.directory $CI_PROJECT_DIR
84     - git clean -fdx
85     - git reset --hard
86     - rm -fr .git/rebase-merge
87     - mkdir artifacts
88     - cat /proc/cpuinfo > artifacts/cpuinfo.txt
89     - cat /proc/meminfo > artifacts/meminfo.txt
90     - vulkaninfo > artifacts/vulkaninfo.txt
91     - git rebase $CI_MERGE_REQUEST_DIFF_BASE_SHA --exec ./gitlab/build-crosstest
92     - if [ -f pipeline_failed ] ; then exit 1 ; fi
93   artifacts:
94     when: always
95     paths:
96       - artifacts
98 .build-mingw:
99   stage: build
100   rules:
101     - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
102   image: $CI_REGISTRY/wine/vkd3d:debian-bookworm
103   interruptible: true
104   needs:
105     - job: image-linux
106       optional: true
107   dependencies: []
108   script:
109     - git config --global --add safe.directory $CI_PROJECT_DIR
110     - git clean -fdx
111     - git reset --hard
112     - rm -fr .git/rebase-merge
113     - mkdir artifacts
114     - cat /proc/cpuinfo > artifacts/cpuinfo.txt
115     - cat /proc/meminfo > artifacts/meminfo.txt
116     - git rebase $CI_MERGE_REQUEST_DIFF_BASE_SHA --exec ./gitlab/build-mingw
117     - if [ -f pipeline_failed ] ; then exit 1 ; fi
118   artifacts:
119     when: always
120     paths:
121       - artifacts
123 build-mingw-64:
124   extends: .build-mingw
125   variables:
126     HOST: "x86_64-w64-mingw32"
128 build-mingw-32:
129   extends: .build-mingw
130   variables:
131     HOST: "i686-w64-mingw32"
133 build-mac:
134   stage: build
135   rules:
136     - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
137   image: winehq-sonoma-pristine
138   allow_failure: true
139   interruptible: true
140   needs:
141     - job: image-mac
142       optional: true
143   dependencies: []
144   tags:
145     - mac
146   script:
147     - brew install vulkan-tools libtool spirv-headers vulkan-loader mingw-w64 spirv-tools
148     - git config --global --add safe.directory $CI_PROJECT_DIR
149     - git clean -fdx
150     - git reset --hard
151     - rm -fr .git/rebase-merge
152     - curl -o image.zip https://gitlab.winehq.org/api/v4/projects/wine%2Fvkd3d/jobs/artifacts/master/download?job=image-mac
153     - unzip image.zip
154     - mkdir artifacts
155     - export PATH="/opt/homebrew/opt/bison/bin:/opt/homebrew/opt/flex/bin:$PATH"
156     - export VK_DRIVER_FILES="$PWD/image/moltenvk/MoltenVK_icd.json"
157     - export SONAME_LIBDXCOMPILER="$PWD/image/dxc/libdxcompiler.dylib"
158     - system_profiler SPSoftwareDataType SPHardwareDataType > artifacts/systeminfo.txt
159     - vulkaninfo > artifacts/vulkaninfo.txt
160     - git rebase $CI_MERGE_REQUEST_DIFF_BASE_SHA --exec ./gitlab/build-mac
161     - if [ -f build_failed ] ; then exit 1 ; fi
162     - if [ -f tests_failed ] ; then exit 2 ; fi
163   variables:
164     VKD3D_DISABLE_EXTENSIONS: "VK_EXT_descriptor_indexing"
165     VKD3D_SHADER_CONFIG: 'force_validation'
166     MVK_CONFIG_LOG_LEVEL: 2
167     SONAME_LIBVULKAN: "/opt/homebrew/opt/vulkan-loader/lib/libvulkan.1.dylib"
168     WIDL: "x86_64-w64-mingw32-widl"
169   artifacts:
170     when: always
171     paths:
172       - artifacts