gitlab-ci: Use separate arm64 build/test docker images
[mesa.git] / .gitlab-ci / debian-arm64-test-install.sh
1 #!/bin/bash
2
3 set -e
4 set -o xtrace
5
6 ############### Install packages for building
7 apt-get -y install ca-certificates
8 sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
9 echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
10 apt-get update
11 apt-get -y install \
12 bzip2 \
13 cmake \
14 g++ \
15 gcc \
16 git \
17 libc6-dev \
18 libexpat1 \
19 libgbm-dev \
20 libgbm-dev \
21 libgles2-mesa-dev \
22 libllvm8 \
23 libpng16-16 \
24 libpng-dev \
25 meson \
26 pkg-config \
27 procps \
28 python \
29 wget \
30 zlib1g
31
32 export LIBDRM_VERSION=libdrm-2.4.99
33
34 ############### Build libdrm
35
36 wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
37 tar -xvf $LIBDRM_VERSION.tar.bz2 && rm $LIBDRM_VERSION.tar.bz2
38 cd $LIBDRM_VERSION; meson build/ -Detnaviv=true; ninja -C build/ install; cd ..
39 rm -rf $LIBDRM_VERSION
40
41 ############### Build dEQP
42
43 git config --global user.email "mesa@example.com"
44 git config --global user.name "Mesa CI"
45 # XXX: Use --depth 1 once we can drop the cherry-picks.
46 git clone \
47 https://github.com/KhronosGroup/VK-GL-CTS.git \
48 -b opengl-es-cts-3.2.5.1 \
49 /VK-GL-CTS
50 cd /VK-GL-CTS
51 # Fix surfaceless build
52 git cherry-pick -x 22f41e5e321c6dcd8569c4dad91bce89f06b3670
53 git cherry-pick -x 1daa8dff73161ea60ead965bd6c9f2a0a2165648
54
55 # surfaceless links against libkms and such despite not using it.
56 sed -i '/gbm/d' targets/surfaceless/surfaceless.cmake
57 sed -i '/libkms/d' targets/surfaceless/surfaceless.cmake
58 sed -i '/libgbm/d' targets/surfaceless/surfaceless.cmake
59
60 # --insecure is due to SSL cert failures hitting sourceforge for zlib and
61 # libpng (sigh). The archives get their checksums checked anyway, and git
62 # always goes through ssh or https.
63 python3 external/fetch_sources.py --insecure
64
65 mkdir -p /deqp
66 cd /deqp
67 cmake -G Ninja \
68 -DDEQP_TARGET=surfaceless \
69 -DCMAKE_BUILD_TYPE=Release \
70 /VK-GL-CTS
71 ninja
72
73 # Copy out the mustpass lists we want from a bunch of other junk.
74 mkdir /deqp/mustpass
75 for gles in gles2 gles3 gles31; do
76 cp \
77 /deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.5.x/$gles-master.txt \
78 /deqp/mustpass/$gles-master.txt
79 done
80
81 rm -rf /deqp/external
82 rm -rf /deqp/modules/internal
83 rm -rf /deqp/executor
84 rm -rf /deqp/execserver
85 rm -rf /deqp/modules/egl
86 rm -rf /deqp/framework
87 find -iname '*cmake*' -o -name '*ninja*' -o -name '*.o' -o -name '*.a' | xargs rm -rf
88 strip modules/*/deqp-*
89 du -sh *
90 rm -rf /VK-GL-CTS
91
92 ############### Uninstall the build software
93
94 apt-get purge -y \
95 bzip2 \
96 cmake \
97 g++ \
98 gcc \
99 git \
100 libc6-dev \
101 libgbm-dev \
102 libgles2-mesa-dev \
103 libpng-dev \
104 meson \
105 pkg-config \
106 python \
107 wget
108
109 apt-get autoremove -y --purge