diff options
author | Eric Anholt <[email protected]> | 2019-06-28 16:35:32 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2019-09-12 10:55:42 -0700 |
commit | 6f0dc087b7a57fb8e0cdb4b2a884086953429afd (patch) | |
tree | e1a56a7595d749f79b20fbcd13c30d0ccfd17f25 /.gitlab-ci/debian-test-install.sh | |
parent | 0b6b0c09f438c18b18a5f9e444d178767fb0bafb (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.sh | 104 |
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 |