summaryrefslogtreecommitdiff
path: root/.gitlab-ci
diff options
context:
space:
mode:
authorMichel Dänzer <mdaenzer@redhat.com>2019-11-04 09:54:09 +0100
committerMichel Dänzer <michel@daenzer.net>2019-11-06 13:10:07 +0100
commitb4d3ae22697ec97c4ffb017aac8eeed4aad7fb74 (patch)
tree34769868256f185a1c22e07a0d0da1d35731cf7b /.gitlab-ci
parentdd4587b55cdfb09d5e0ebf6b7e7216b46ae10c3e (diff)
gitlab-ci: Use separate arm64 build/test docker images
The image used for test jobs is only about 1/6 as big as before, which may help avoid some issues with some of the test boards. Inspired by https://gitlab.freedesktop.org/mesa/mesa/issues/2046 . v2: * Leave LIBDRM_VERSION at 2.4.99 (Daniel Stone) * Delete more build artifacts from dEQP tree (Daniel Stone) v3: * Set LD_LIBRARY_PATH for ldd Acked-by: Daniel Stone <daniels@collabora.com> # v2 Reviewed-by: Eric Anholt <eric@anholt.net> # Except for the ldd line
Diffstat (limited to '.gitlab-ci')
-rw-r--r--.gitlab-ci/debian-arm64-install.sh63
-rw-r--r--.gitlab-ci/debian-arm64-test-install.sh109
2 files changed, 109 insertions, 63 deletions
diff --git a/.gitlab-ci/debian-arm64-install.sh b/.gitlab-ci/debian-arm64-install.sh
index 40edd783a30..95647fd64ee 100644
--- a/.gitlab-ci/debian-arm64-install.sh
+++ b/.gitlab-ci/debian-arm64-install.sh
@@ -12,31 +12,21 @@ apt-get update
apt-get -y install \
bc \
bison \
- bzip2 \
ccache \
- cmake \
crossbuild-essential-armhf \
- curl \
flex \
g++ \
gettext \
- git \
- libdrm-dev \
libdrm-dev:armhf \
libelf-dev \
libelf-dev:armhf \
libexpat1-dev \
libexpat1-dev:armhf \
- libgbm-dev \
- libgles2-mesa-dev \
- libpng-dev \
libssl-dev \
llvm-7-dev:armhf \
llvm-8-dev \
meson \
- ninja-build \
pkg-config \
- procps \
python \
python3-mako \
wget \
@@ -60,62 +50,9 @@ 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 "mesa@example.com"
-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 \
- libgbm-dev \
- libgles2-mesa-dev \
wget
apt-get autoremove -y --purge
diff --git a/.gitlab-ci/debian-arm64-test-install.sh b/.gitlab-ci/debian-arm64-test-install.sh
new file mode 100644
index 00000000000..bc7233e4bdc
--- /dev/null
+++ b/.gitlab-ci/debian-arm64-test-install.sh
@@ -0,0 +1,109 @@
+#!/bin/bash
+
+set -e
+set -o xtrace
+
+############### Install packages for building
+apt-get -y install ca-certificates
+sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
+echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
+apt-get update
+apt-get -y install \
+ bzip2 \
+ cmake \
+ g++ \
+ gcc \
+ git \
+ libc6-dev \
+ libexpat1 \
+ libgbm-dev \
+ libgbm-dev \
+ libgles2-mesa-dev \
+ libllvm8 \
+ libpng16-16 \
+ libpng-dev \
+ meson \
+ pkg-config \
+ procps \
+ python \
+ wget \
+ zlib1g
+
+export LIBDRM_VERSION=libdrm-2.4.99
+
+############### 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 "mesa@example.com"
+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
+find -iname '*cmake*' -o -name '*ninja*' -o -name '*.o' -o -name '*.a' | xargs rm -rf
+strip modules/*/deqp-*
+du -sh *
+rm -rf /VK-GL-CTS
+
+############### Uninstall the build software
+
+apt-get purge -y \
+ bzip2 \
+ cmake \
+ g++ \
+ gcc \
+ git \
+ libc6-dev \
+ libgbm-dev \
+ libgles2-mesa-dev \
+ libpng-dev \
+ meson \
+ pkg-config \
+ python \
+ wget
+
+apt-get autoremove -y --purge