ci/bare-metal: Use the deqp-runner bits straight out of the artifacts.
[mesa.git] / .gitlab-ci / build-deqp-vk.sh
1 #!/bin/bash
2
3 set -ex
4
5 git config --global user.email "mesa@example.com"
6 git config --global user.name "Mesa CI"
7 git clone \
8 https://github.com/KhronosGroup/VK-GL-CTS.git \
9 -b vulkan-cts-1.2.2.1 \
10 /VK-GL-CTS
11 pushd /VK-GL-CTS
12
13 # Cherry pick a fix that's not in 1.2.2.1 yet. Re-add --depth 1 to the clone
14 # when an uprev removes this.
15 git cherry-pick -x ea6f1ffae14de94bbd9c354ad5a6c3f452f65ac4
16
17 # --insecure is due to SSL cert failures hitting sourceforge for zlib and
18 # libpng (sigh). The archives get their checksums checked anyway, and git
19 # always goes through ssh or https.
20 python3 external/fetch_sources.py --insecure
21
22 mkdir -p /deqp
23
24 # Save the testlog stylesheets:
25 cp doc/testlog-stylesheet/testlog.{css,xsl} /deqp
26 popd
27
28 pushd /deqp
29 cmake -G Ninja \
30 -DDEQP_TARGET=${DEQP_TARGET:-x11_glx} \
31 -DCMAKE_BUILD_TYPE=Release \
32 $EXTRA_CMAKE_ARGS \
33 /VK-GL-CTS
34 ninja
35
36 # Copy out the mustpass lists we want.
37 mkdir /deqp/mustpass
38 cp /VK-GL-CTS/external/vulkancts/mustpass/master/vk-default.txt \
39 /deqp/mustpass/vk-master.txt
40
41 for gles in gles2 gles3 gles31; do
42 cp \
43 /deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.6.x/$gles-master.txt \
44 /deqp/mustpass/$gles-master.txt
45 done
46
47 # Save *some* executor utils, but otherwise strip things down
48 # to reduct deqp build size:
49 mkdir /deqp/executor.save
50 cp /deqp/executor/testlog-to-* /deqp/executor.save
51 rm -rf /deqp/executor
52 mv /deqp/executor.save /deqp/executor
53
54 rm -rf /deqp/modules/internal
55 rm -rf /deqp/execserver
56 rm -rf /deqp/modules/egl
57 rm -rf /deqp/framework
58 find -iname '*cmake*' -o -name '*ninja*' -o -name '*.o' -o -name '*.a' | xargs rm -rf
59 ${STRIP_CMD:-strip} external/vulkancts/modules/vulkan/deqp-vk
60 ${STRIP_CMD:-strip} modules/*/deqp-*
61 du -sh *
62 rm -rf /VK-GL-CTS
63 popd