From df26e18b9ffc77d6743363c757306f4f1b3f8084 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Michel=20D=C3=A4nzer?= Date: Tue, 5 Nov 2019 19:02:17 +0100 Subject: [PATCH] gitlab-ci: Share dEQP build process between x86 & ARM test image scripts See https://gitlab.freedesktop.org/mesa/mesa/issues/2056 v2: * Rename .gitlab-ci/deqp-build.sh => .gitlab-ci/build-deqp.sh (Eric Anholt) Reviewed-by: Eric Anholt --- .gitlab-ci.yml | 4 +-- .gitlab-ci/build-deqp.sh | 48 +++++++++++++++++++++++++ .gitlab-ci/debian-arm64-test-install.sh | 48 +------------------------ .gitlab-ci/debian-install.sh | 45 ++--------------------- 4 files changed, 53 insertions(+), 92 deletions(-) create mode 100644 .gitlab-ci/build-deqp.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ceb78f363fe..b76aad99430 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -14,9 +14,9 @@ # repository's registry will be used there as well. variables: UPSTREAM_REPO: mesa/mesa - DEBIAN_TAG: "2019-10-30" + DEBIAN_TAG: "2019-11-12" DEBIAN_ARM64_TAG: "arm64v8-2019-11-06" - DEBIAN_ARM64_TEST_TAG: "arm64v8-test-2019-11-06" + DEBIAN_ARM64_TEST_TAG: "arm64v8-test-2019-11-12" STRETCH_TAG: "2019-09-18" DEBIAN_VERSION: buster-slim STRETCH_VERSION: stretch-slim diff --git a/.gitlab-ci/build-deqp.sh b/.gitlab-ci/build-deqp.sh new file mode 100644 index 00000000000..b1fa4af8eb0 --- /dev/null +++ b/.gitlab-ci/build-deqp.sh @@ -0,0 +1,48 @@ +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 diff --git a/.gitlab-ci/debian-arm64-test-install.sh b/.gitlab-ci/debian-arm64-test-install.sh index e80ba60f7cf..b59d6646ebb 100644 --- a/.gitlab-ci/debian-arm64-test-install.sh +++ b/.gitlab-ci/debian-arm64-test-install.sh @@ -32,54 +32,8 @@ apt-get -y install \ ############### 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 +. .gitlab-ci/build-deqp.sh -# 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 diff --git a/.gitlab-ci/debian-install.sh b/.gitlab-ci/debian-install.sh index 350ceb6181c..b51748107a0 100644 --- a/.gitlab-ci/debian-install.sh +++ b/.gitlab-ci/debian-install.sh @@ -244,50 +244,9 @@ done ############### 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 -j4 - -# 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 +. .gitlab-ci/build-deqp.sh + ############### Uninstall the build software -- 2.30.2