summaryrefslogtreecommitdiffstats
path: root/.gitlab-ci/debian-test-install.sh
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2019-06-28 16:35:32 -0700
committerEric Anholt <[email protected]>2019-09-12 10:55:42 -0700
commit6f0dc087b7a57fb8e0cdb4b2a884086953429afd (patch)
treee1a56a7595d749f79b20fbcd13c30d0ccfd17f25 /.gitlab-ci/debian-test-install.sh
parent0b6b0c09f438c18b18a5f9e444d178767fb0bafb (diff)
freedreno: Introduce gitlab-based CI.
Since freedreno's kernel and GPU reset seem to be totally solid, we don't need to have the complexity of the LAVA setup that panfrost has. Instead, we can register some boards as shared gitlab runners and have the jobs run out of a docker container just like we do for llvmpipe. Just make sure that the DRI device node is passed through to the containers in the gitlab config ('devices = ["/dev/dri"]' under runners.docker). If a runner fails (networking dies, kernel panic, etc.) it'll take out one build but the rest can keep going since gitlab-runner is what pulls jobs. Since the runner pulls jobs, it also means that they can live behind firewalls instead of needing some public address to be accessed by gitlab.fd.o. For now, enable it just on db410c (A307) and cheza (A630) as those are the hardware that I have plenty of. A307 is only testing GLES2 since running all of GLES3 takes too long for the number of boards I've brought up. Acked-by: Rob Clark <[email protected]> Acked-by: Kenneth Graunke <[email protected]>
Diffstat (limited to '.gitlab-ci/debian-test-install.sh')
-rw-r--r--.gitlab-ci/debian-test-install.sh104
1 files changed, 104 insertions, 0 deletions
diff --git a/.gitlab-ci/debian-test-install.sh b/.gitlab-ci/debian-test-install.sh
new file mode 100644
index 00000000000..c3c905dc39b
--- /dev/null
+++ b/.gitlab-ci/debian-test-install.sh
@@ -0,0 +1,104 @@
+#!/bin/bash
+
+set -e
+set -o xtrace
+
+############### Install packages for building
+apt-get update
+apt-get -y install ca-certificates
+apt-get -y install --no-install-recommends \
+ g++ \
+ git \
+ pkg-config \
+ python \
+ python3-pip \
+ python3-setuptools \
+ bison \
+ flex \
+ gettext \
+ cmake \
+ ninja-build \
+ bc \
+ bzip2 \
+ libssl-dev \
+ curl \
+ unzip \
+ wget \
+ procps \
+ libexpat1 \
+ libelf1 \
+ zlib1g-dev \
+ libpng-dev \
+ libgbm-dev \
+ libgles2-mesa-dev
+
+export LIBDRM_VERSION=libdrm-2.4.99
+
+pip3 install meson
+
+############### Build libdrm
+
+wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
+tar -xvf $LIBDRM_VERSION.tar.bz2 && rm $LIBDRM_VERSION.tar.bz2
+cd $LIBDRM_VERSION; meson build/ -Detnaviv=true; ninja -C build/ install; cd ..
+rm -rf $LIBDRM_VERSION
+
+############### Build dEQP
+
+git config --global user.email "[email protected]"
+git config --global user.name "Mesa CI"
+# XXX: Use --depth 1 once we can drop the cherry-picks.
+git clone \
+ https://github.com/KhronosGroup/VK-GL-CTS.git \
+ -b opengl-es-cts-3.2.5.1 \
+ /VK-GL-CTS
+cd /VK-GL-CTS
+# Fix surfaceless build
+git cherry-pick -x 22f41e5e321c6dcd8569c4dad91bce89f06b3670
+git cherry-pick -x 1daa8dff73161ea60ead965bd6c9f2a0a2165648
+
+# surfaceless links against libkms and such despite not using it.
+sed -i '/gbm/d' targets/surfaceless/surfaceless.cmake
+sed -i '/libkms/d' targets/surfaceless/surfaceless.cmake
+sed -i '/libgbm/d' targets/surfaceless/surfaceless.cmake
+
+# --insecure is due to SSL cert failures hitting sourceforge for zlib and
+# libpng (sigh). The archives get their checksums checked anyway, and git
+# always goes through ssh or https.
+python3 external/fetch_sources.py --insecure
+
+mkdir -p /deqp
+cd /deqp
+cmake -G Ninja \
+ -DDEQP_TARGET=surfaceless \
+ -DCMAKE_BUILD_TYPE=Release \
+ /VK-GL-CTS
+ninja
+
+# Copy out the mustpass lists we want from a bunch of other junk.
+mkdir /deqp/mustpass
+for gles in gles2 gles3 gles31; do
+ cp \
+ /deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.5.x/$gles-master.txt \
+ /deqp/mustpass/$gles-master.txt
+done
+
+rm -rf /deqp/external
+rm -rf /deqp/modules/internal
+rm -rf /deqp/executor
+rm -rf /deqp/execserver
+rm -rf /deqp/modules/egl
+rm -rf /deqp/framework
+du -sh *
+rm -rf /VK-GL-CTS
+
+############### Uninstall the build software
+
+apt-get purge -y \
+ cmake \
+ git \
+ gcc \
+ g++ \
+ bison \
+ flex \
+ ninja-build