gitlab-ci: Build the CTS in the debian build image.
authorEric Anholt <eric@anholt.net>
Mon, 22 Jul 2019 19:03:47 +0000 (12:03 -0700)
committerEric Anholt <eric@anholt.net>
Tue, 13 Aug 2019 17:30:01 +0000 (10:30 -0700)
This will let us reuse the image for test runs.

Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
.gitlab-ci.yml
.gitlab-ci/debian-install.sh

index f375a7c2423c335403761d61f6d91f8e1e87cda0..9861f7590f45c1f3ca41cfe5abad3ee059c03879 100644 (file)
@@ -14,7 +14,7 @@
 # repository's registry will be used there as well.
 variables:
   UPSTREAM_REPO: mesa/mesa
-  DEBIAN_TAG: "2019-08-08"
+  DEBIAN_TAG: "2019-08-09"
   DEBIAN_VERSION: stretch-slim
   DEBIAN_IMAGE: "$CI_REGISTRY_IMAGE/debian/$DEBIAN_VERSION:$DEBIAN_TAG"
 
index eb4a37ee1e021947850e3018dc5e9a4be39d33ed..0ccacd1a9d6d20ea23840509261f0ae1a45c8dc5 100644 (file)
@@ -49,6 +49,7 @@ echo "deb https://deb.debian.org/debian/ buster main" >/etc/apt/sources.list.d/b
 echo "deb https://deb.debian.org/debian/ buster-updates main" >/etc/apt/sources.list.d/buster-updates.list
 apt-get update
 apt-get install -y \
+      git \
       bzip2 \
       zlib1g-dev \
       pkg-config \
@@ -70,11 +71,15 @@ apt-get install -y \
       libunwind-dev \
       libglvnd-dev \
       libgtk-3-dev \
+      libpng-dev \
+      libgbm-dev \
+      libgles2-mesa-dev \
       python-mako \
       python3-mako \
       bison \
       flex \
       gettext \
+      cmake \
       meson \
       scons
 
@@ -219,10 +224,62 @@ for arch in $CROSS_ARCHITECTURES; do
 done
 
 
-# Remove unused packages
+############### 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
+
+python3 external/fetch_sources.py
+
+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
+
+# Remove the rest of the build products that we don't need.
+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 \
       git \
       curl \
       unzip \
-      gnupg
+      gnupg \
+      cmake \
+      git \
+      libgles2-mesa-dev \
+      libgbm-dev
+
 apt-get autoremove -y --purge