From: Michel Dänzer Date: Thu, 7 Nov 2019 19:08:03 +0000 (+0100) Subject: gitlab-ci: Rename container install scripts to match job names (better) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=506e9d5fc712b828584fe6e7afe980efb225e727;p=mesa.git gitlab-ci: Rename container install scripts to match job names (better) Cleans up .gitlab-ci/ a little, and allows using a single DEBIAN_EXEC line for all container jobs. v2: * Use lava_arm.sh instead of arm_lava.sh for consistency with v2 of the previous change Reviewed-by: Eric Anholt # v1 Reviewed-by: Eric Engestrom --- diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 73b56a388be..409d84df83f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -89,6 +89,7 @@ stages: extends: - .ci-run-policy variables: + DEBIAN_EXEC: 'bash .gitlab-ci/container/${CI_JOB_NAME}.sh' # no need to pull the whole repo to build the container image GIT_STRATEGY: none @@ -96,8 +97,6 @@ x86_build: extends: - .debian@container-ifnot-exists - .container - variables: - DEBIAN_EXEC: 'bash .gitlab-ci/debian-install.sh' .use-x86_build: image: $DEBIAN_IMAGE @@ -108,7 +107,6 @@ x86_test: extends: x86_build variables: DEBIAN_TAG: "$DEBIAN_TEST_TAG" - DEBIAN_EXEC: 'bash .gitlab-ci/debian-test-install.sh' x86_build_old: extends: x86_build @@ -116,7 +114,6 @@ x86_build_old: DEBIAN_TAG: $STRETCH_TAG DEBIAN_VERSION: $STRETCH_VERSION DEBIAN_IMAGE: $STRETCH_IMAGE - DEBIAN_EXEC: 'bash .gitlab-ci/debian-stretch-install.sh' .use-x86_build_old: image: $STRETCH_IMAGE @@ -129,7 +126,6 @@ arm_build: - .container variables: DEBIAN_TAG: "$DEBIAN_ARM64_TAG" - DEBIAN_EXEC: 'bash .gitlab-ci/debian-arm64-install.sh' arm_test: extends: @@ -137,7 +133,6 @@ arm_test: - .container variables: DEBIAN_TAG: "$DEBIAN_ARM64_TEST_TAG" - DEBIAN_EXEC: 'bash .gitlab-ci/debian-arm64-test-install.sh' # BUILD diff --git a/.gitlab-ci/container/arm_build.sh b/.gitlab-ci/container/arm_build.sh new file mode 100644 index 00000000000..c08746b1df2 --- /dev/null +++ b/.gitlab-ci/container/arm_build.sh @@ -0,0 +1,55 @@ +#!/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 +dpkg --add-architecture armhf +apt-get update +apt-get -y install \ + bc \ + bison \ + ccache \ + crossbuild-essential-armhf \ + flex \ + g++ \ + gettext \ + libdrm-dev:armhf \ + libelf-dev \ + libelf-dev:armhf \ + libexpat1-dev \ + libexpat1-dev:armhf \ + libssl-dev \ + llvm-7-dev:armhf \ + llvm-8-dev \ + meson \ + pkg-config \ + python \ + python3-mako \ + wget \ + zlib1g-dev + +# dependencies where we want a specific version +export LIBDRM_VERSION=libdrm-2.4.100 + +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 -D vc4=true -D freedreno=true -D etnaviv=true; ninja -j4 -C build install; cd .. +rm -rf $LIBDRM_VERSION + +############### Generate cross build file for Meson + +cross_file="/cross_file-armhf.txt" +/usr/share/meson/debcrossgen --arch armhf -o "$cross_file" +# Explicitly set ccache path for cross compilers +sed -i "s|/usr/bin/\([^-]*\)-linux-gnu\([^-]*\)-g|/usr/lib/ccache/\\1-linux-gnu\\2-g|g" "$cross_file" +# Don't need wrapper for armhf executables +sed -i -e '/\[properties\]/a\' -e "needs_exe_wrapper = False" "$cross_file" + +apt-get purge -y \ + wget + +apt-get autoremove -y --purge diff --git a/.gitlab-ci/container/arm_test.sh b/.gitlab-ci/container/arm_test.sh new file mode 100644 index 00000000000..2ea6327cb84 --- /dev/null +++ b/.gitlab-ci/container/arm_test.sh @@ -0,0 +1,63 @@ +#!/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 \ + libdrm-nouveau2 \ + libexpat1 \ + libgbm-dev \ + libgbm-dev \ + libgles2-mesa-dev \ + libllvm8 \ + libpng16-16 \ + libpng-dev \ + libvulkan-dev \ + libvulkan1 \ + meson \ + pkg-config \ + procps \ + python \ + waffle-utils \ + wget \ + zlib1g + +############### Build dEQP runner + +. .gitlab-ci/build-cts-runner.sh + +############### Build dEQP + +. .gitlab-ci/build-deqp.sh + + +############### Uninstall the build software + +apt-get purge -y \ + bzip2 \ + cmake \ + g++ \ + gcc \ + git \ + libc6-dev \ + libgbm-dev \ + libgles2-mesa-dev \ + libpng-dev \ + libvulkan-dev \ + meson \ + pkg-config \ + python \ + wget + +apt-get autoremove -y --purge diff --git a/.gitlab-ci/container/lava_arm.sh b/.gitlab-ci/container/lava_arm.sh new file mode 100644 index 00000000000..429dca0e1d6 --- /dev/null +++ b/.gitlab-ci/container/lava_arm.sh @@ -0,0 +1,186 @@ +#!/bin/bash + +set -e +set -o xtrace + +############### Install packages for building +dpkg --add-architecture ${DEBIAN_ARCH} +echo 'deb-src https://deb.debian.org/debian testing main' > /etc/apt/sources.list.d/deb-src.list +apt-get update +apt-get -y install ca-certificates +apt-get -y install --no-install-recommends \ + crossbuild-essential-${DEBIAN_ARCH} \ + meson \ + g++ \ + git \ + ccache \ + pkg-config \ + python3-mako \ + python-numpy \ + python-six \ + python-mako \ + python3-pip \ + python3-setuptools \ + python3-six \ + python3-wheel \ + python3-jinja2 \ + bison \ + flex \ + gettext \ + cmake \ + bc \ + libssl-dev \ + lqa \ + csvkit \ + curl \ + unzip \ + wget \ + debootstrap \ + procps \ + qemu-user-static \ + cpio \ + clang-8 \ + llvm-8 \ + libclang-8-dev \ + llvm-8-dev \ + gdc-9 \ + lld-8 \ + nasm \ + libegl1-mesa-dev \ + \ + libdrm-dev:${DEBIAN_ARCH} \ + libx11-dev:${DEBIAN_ARCH} \ + libxxf86vm-dev:${DEBIAN_ARCH} \ + libexpat1-dev:${DEBIAN_ARCH} \ + libsensors-dev:${DEBIAN_ARCH} \ + libxfixes-dev:${DEBIAN_ARCH} \ + libxdamage-dev:${DEBIAN_ARCH} \ + libxext-dev:${DEBIAN_ARCH} \ + x11proto-dev:${DEBIAN_ARCH} \ + libx11-xcb-dev:${DEBIAN_ARCH} \ + libxcb-dri2-0-dev:${DEBIAN_ARCH} \ + libxcb-glx0-dev:${DEBIAN_ARCH} \ + libxcb-xfixes0-dev:${DEBIAN_ARCH} \ + libxcb-dri3-dev:${DEBIAN_ARCH} \ + libxcb-present-dev:${DEBIAN_ARCH} \ + libxcb-randr0-dev:${DEBIAN_ARCH} \ + libxcb-sync-dev:${DEBIAN_ARCH} \ + libxrandr-dev:${DEBIAN_ARCH} \ + libxshmfence-dev:${DEBIAN_ARCH} \ + libelf-dev:${DEBIAN_ARCH} \ + zlib1g-dev:${DEBIAN_ARCH} \ + libglvnd-core-dev:${DEBIAN_ARCH} \ + libgles2-mesa-dev:${DEBIAN_ARCH} \ + libegl1-mesa-dev:${DEBIAN_ARCH} \ + libpng-dev:${DEBIAN_ARCH} + + +############### Install lavacli (remove after it's back into Debian testing) +mkdir -p lavacli +wget -qO- https://git.lavasoftware.org/lava/lavacli/-/archive/v0.9.8/lavacli-v0.9.8.tar.gz | tar -xz --strip-components=1 -C lavacli +pushd lavacli +python3 ./setup.py install +popd + + +############### Cross-build dEQP +mkdir -p /artifacts/rootfs/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 + +cd /artifacts/rootfs/deqp +cmake -G Ninja \ + -DDEQP_TARGET=surfaceless \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_COMPILER=${GCC_ARCH}-gcc \ + -DCMAKE_CXX_COMPILER=${GCC_ARCH}-g++ \ + /VK-GL-CTS +ninja +rm -rf /artifacts/rootfs/deqp/external +rm -rf /artifacts/rootfs/deqp/modules/gles31 +rm -rf /artifacts/rootfs/deqp/modules/internal +rm -rf /artifacts/rootfs/deqp/executor +rm -rf /artifacts/rootfs/deqp/execserver +rm -rf /artifacts/rootfs/deqp/modules/egl +rm -rf /artifacts/rootfs/deqp/framework +find . -name CMakeFiles | xargs rm -rf +find . -name lib\*.a | xargs rm -rf +du -sh * +rm -rf /VK-GL-CTS-opengl-es-cts-3.2.5.0 + + +############### Cross-build Volt dEQP runner +mkdir -p /battery +cd /battery +wget https://github.com/VoltLang/Battery/releases/download/v0.1.23/battery-0.1.23-x86_64-linux.tar.gz +tar xzvf battery-0.1.23-x86_64-linux.tar.gz +rm battery-0.1.23-x86_64-linux.tar.gz +mv battery /usr/local/bin +rm -rf /battery + +mkdir -p /volt +cd /volt +mkdir -p Watt Volta dEQP +wget -qO- https://github.com/VoltLang/Watt/archive/v0.1.3.tar.gz | tar -xz --strip-components=1 -C ./Watt +wget -qO- https://github.com/VoltLang/Volta/archive/v0.1.3.tar.gz | tar -xz --strip-components=1 -C ./Volta +wget -qO- https://github.com/Wallbraker/dEQP/archive/v0.1.4.tar.gz | tar -xz --strip-components=1 -C ./dEQP +battery config --release --lto Volta Watt +battery build +battery config --arch ${VOLT_ARCH} --cmd-volta Volta/volta Volta/rt Watt dEQP +battery build +rm /usr/local/bin/battery +cp dEQP/deqp /artifacts/rootfs/deqp/deqp-volt +rm -rf /volt + + +############### Remove LLVM now, so the container image is smaller +apt-get -y remove \*llvm\* + + +############### Cross-build kernel +KERNEL_URL="https://gitlab.freedesktop.org/tomeu/linux/-/archive/panfrost-veyron-fix/linux-panfrost-veyron-fix.tar.gz" +export ARCH=${KERNEL_ARCH} +export CROSS_COMPILE="${GCC_ARCH}-" + +mkdir -p /kernel +wget -qO- ${KERNEL_URL} | tar -xz --strip-components=1 -C /kernel +cd /kernel +./scripts/kconfig/merge_config.sh ${DEFCONFIG} /tmp/clone/.gitlab-ci/${KERNEL_ARCH}.config +make -j12 ${KERNEL_IMAGE_NAME} dtbs +cp arch/${KERNEL_ARCH}/boot/${KERNEL_IMAGE_NAME} /artifacts/. +cp ${DEVICE_TREES} /artifacts/. +rm -rf /kernel + + +############### Create rootfs +cp /tmp/clone/.gitlab-ci/create-rootfs.sh /artifacts/rootfs/. +mkdir -p /artifacts/rootfs/bin +cp /usr/bin/qemu-aarch64-static /artifacts/rootfs/bin +cp /usr/bin/qemu-arm-static /artifacts/rootfs/bin + +set +e +debootstrap --variant=minbase --arch=${DEBIAN_ARCH} testing /artifacts/rootfs/ http://deb.debian.org/debian +cat /artifacts/rootfs/debootstrap/debootstrap.log +set -e +chroot /artifacts/rootfs sh /create-rootfs.sh + +rm /artifacts/rootfs/bin/qemu-arm-static +rm /artifacts/rootfs/bin/qemu-aarch64-static +rm /artifacts/rootfs/create-rootfs.sh diff --git a/.gitlab-ci/container/x86_build.sh b/.gitlab-ci/container/x86_build.sh new file mode 100644 index 00000000000..374d1e8bb86 --- /dev/null +++ b/.gitlab-ci/container/x86_build.sh @@ -0,0 +1,212 @@ +#!/bin/bash + +set -e +set -o xtrace + +export DEBIAN_FRONTEND=noninteractive + +CROSS_ARCHITECTURES="i386" +for arch in $CROSS_ARCHITECTURES; do + dpkg --add-architecture $arch +done + +apt-get install -y \ + ca-certificates \ + unzip \ + wget + +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 + +# Use newer packages from backports by default +cat >/etc/apt/preferences </usr/local/bin/x86_64-w64-mingw32-pkg-config </etc/apt/sources.list.d/backports.list + +apt-get update + +# Use newer packages from backports by default +cat >/etc/apt/preferences </etc/apt/sources.list.d/backports.list + +apt-get update + +# Use newer packages from backports by default +cat >/etc/apt/preferences </etc/apt/sources.list.d/backports.list -dpkg --add-architecture armhf -apt-get update -apt-get -y install \ - bc \ - bison \ - ccache \ - crossbuild-essential-armhf \ - flex \ - g++ \ - gettext \ - libdrm-dev:armhf \ - libelf-dev \ - libelf-dev:armhf \ - libexpat1-dev \ - libexpat1-dev:armhf \ - libssl-dev \ - llvm-7-dev:armhf \ - llvm-8-dev \ - meson \ - pkg-config \ - python \ - python3-mako \ - wget \ - zlib1g-dev - -# dependencies where we want a specific version -export LIBDRM_VERSION=libdrm-2.4.100 - -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 -D vc4=true -D freedreno=true -D etnaviv=true; ninja -j4 -C build install; cd .. -rm -rf $LIBDRM_VERSION - -############### Generate cross build file for Meson - -cross_file="/cross_file-armhf.txt" -/usr/share/meson/debcrossgen --arch armhf -o "$cross_file" -# Explicitly set ccache path for cross compilers -sed -i "s|/usr/bin/\([^-]*\)-linux-gnu\([^-]*\)-g|/usr/lib/ccache/\\1-linux-gnu\\2-g|g" "$cross_file" -# Don't need wrapper for armhf executables -sed -i -e '/\[properties\]/a\' -e "needs_exe_wrapper = False" "$cross_file" - -apt-get purge -y \ - wget - -apt-get autoremove -y --purge diff --git a/.gitlab-ci/debian-arm64-test-install.sh b/.gitlab-ci/debian-arm64-test-install.sh deleted file mode 100644 index 2ea6327cb84..00000000000 --- a/.gitlab-ci/debian-arm64-test-install.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/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 \ - libdrm-nouveau2 \ - libexpat1 \ - libgbm-dev \ - libgbm-dev \ - libgles2-mesa-dev \ - libllvm8 \ - libpng16-16 \ - libpng-dev \ - libvulkan-dev \ - libvulkan1 \ - meson \ - pkg-config \ - procps \ - python \ - waffle-utils \ - wget \ - zlib1g - -############### Build dEQP runner - -. .gitlab-ci/build-cts-runner.sh - -############### Build dEQP - -. .gitlab-ci/build-deqp.sh - - -############### Uninstall the build software - -apt-get purge -y \ - bzip2 \ - cmake \ - g++ \ - gcc \ - git \ - libc6-dev \ - libgbm-dev \ - libgles2-mesa-dev \ - libpng-dev \ - libvulkan-dev \ - meson \ - pkg-config \ - python \ - wget - -apt-get autoremove -y --purge diff --git a/.gitlab-ci/debian-install.sh b/.gitlab-ci/debian-install.sh deleted file mode 100644 index 374d1e8bb86..00000000000 --- a/.gitlab-ci/debian-install.sh +++ /dev/null @@ -1,212 +0,0 @@ -#!/bin/bash - -set -e -set -o xtrace - -export DEBIAN_FRONTEND=noninteractive - -CROSS_ARCHITECTURES="i386" -for arch in $CROSS_ARCHITECTURES; do - dpkg --add-architecture $arch -done - -apt-get install -y \ - ca-certificates \ - unzip \ - wget - -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 - -# Use newer packages from backports by default -cat >/etc/apt/preferences </usr/local/bin/x86_64-w64-mingw32-pkg-config </etc/apt/sources.list.d/backports.list - -apt-get update - -# Use newer packages from backports by default -cat >/etc/apt/preferences </etc/apt/sources.list.d/backports.list - -apt-get update - -# Use newer packages from backports by default -cat >/etc/apt/preferences < /etc/apt/sources.list.d/deb-src.list -apt-get update -apt-get -y install ca-certificates -apt-get -y install --no-install-recommends \ - crossbuild-essential-${DEBIAN_ARCH} \ - meson \ - g++ \ - git \ - ccache \ - pkg-config \ - python3-mako \ - python-numpy \ - python-six \ - python-mako \ - python3-pip \ - python3-setuptools \ - python3-six \ - python3-wheel \ - python3-jinja2 \ - bison \ - flex \ - gettext \ - cmake \ - bc \ - libssl-dev \ - lqa \ - csvkit \ - curl \ - unzip \ - wget \ - debootstrap \ - procps \ - qemu-user-static \ - cpio \ - clang-8 \ - llvm-8 \ - libclang-8-dev \ - llvm-8-dev \ - gdc-9 \ - lld-8 \ - nasm \ - libegl1-mesa-dev \ - \ - libdrm-dev:${DEBIAN_ARCH} \ - libx11-dev:${DEBIAN_ARCH} \ - libxxf86vm-dev:${DEBIAN_ARCH} \ - libexpat1-dev:${DEBIAN_ARCH} \ - libsensors-dev:${DEBIAN_ARCH} \ - libxfixes-dev:${DEBIAN_ARCH} \ - libxdamage-dev:${DEBIAN_ARCH} \ - libxext-dev:${DEBIAN_ARCH} \ - x11proto-dev:${DEBIAN_ARCH} \ - libx11-xcb-dev:${DEBIAN_ARCH} \ - libxcb-dri2-0-dev:${DEBIAN_ARCH} \ - libxcb-glx0-dev:${DEBIAN_ARCH} \ - libxcb-xfixes0-dev:${DEBIAN_ARCH} \ - libxcb-dri3-dev:${DEBIAN_ARCH} \ - libxcb-present-dev:${DEBIAN_ARCH} \ - libxcb-randr0-dev:${DEBIAN_ARCH} \ - libxcb-sync-dev:${DEBIAN_ARCH} \ - libxrandr-dev:${DEBIAN_ARCH} \ - libxshmfence-dev:${DEBIAN_ARCH} \ - libelf-dev:${DEBIAN_ARCH} \ - zlib1g-dev:${DEBIAN_ARCH} \ - libglvnd-core-dev:${DEBIAN_ARCH} \ - libgles2-mesa-dev:${DEBIAN_ARCH} \ - libegl1-mesa-dev:${DEBIAN_ARCH} \ - libpng-dev:${DEBIAN_ARCH} - - -############### Install lavacli (remove after it's back into Debian testing) -mkdir -p lavacli -wget -qO- https://git.lavasoftware.org/lava/lavacli/-/archive/v0.9.8/lavacli-v0.9.8.tar.gz | tar -xz --strip-components=1 -C lavacli -pushd lavacli -python3 ./setup.py install -popd - - -############### Cross-build dEQP -mkdir -p /artifacts/rootfs/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 - -cd /artifacts/rootfs/deqp -cmake -G Ninja \ - -DDEQP_TARGET=surfaceless \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_C_COMPILER=${GCC_ARCH}-gcc \ - -DCMAKE_CXX_COMPILER=${GCC_ARCH}-g++ \ - /VK-GL-CTS -ninja -rm -rf /artifacts/rootfs/deqp/external -rm -rf /artifacts/rootfs/deqp/modules/gles31 -rm -rf /artifacts/rootfs/deqp/modules/internal -rm -rf /artifacts/rootfs/deqp/executor -rm -rf /artifacts/rootfs/deqp/execserver -rm -rf /artifacts/rootfs/deqp/modules/egl -rm -rf /artifacts/rootfs/deqp/framework -find . -name CMakeFiles | xargs rm -rf -find . -name lib\*.a | xargs rm -rf -du -sh * -rm -rf /VK-GL-CTS-opengl-es-cts-3.2.5.0 - - -############### Cross-build Volt dEQP runner -mkdir -p /battery -cd /battery -wget https://github.com/VoltLang/Battery/releases/download/v0.1.23/battery-0.1.23-x86_64-linux.tar.gz -tar xzvf battery-0.1.23-x86_64-linux.tar.gz -rm battery-0.1.23-x86_64-linux.tar.gz -mv battery /usr/local/bin -rm -rf /battery - -mkdir -p /volt -cd /volt -mkdir -p Watt Volta dEQP -wget -qO- https://github.com/VoltLang/Watt/archive/v0.1.3.tar.gz | tar -xz --strip-components=1 -C ./Watt -wget -qO- https://github.com/VoltLang/Volta/archive/v0.1.3.tar.gz | tar -xz --strip-components=1 -C ./Volta -wget -qO- https://github.com/Wallbraker/dEQP/archive/v0.1.4.tar.gz | tar -xz --strip-components=1 -C ./dEQP -battery config --release --lto Volta Watt -battery build -battery config --arch ${VOLT_ARCH} --cmd-volta Volta/volta Volta/rt Watt dEQP -battery build -rm /usr/local/bin/battery -cp dEQP/deqp /artifacts/rootfs/deqp/deqp-volt -rm -rf /volt - - -############### Remove LLVM now, so the container image is smaller -apt-get -y remove \*llvm\* - - -############### Cross-build kernel -KERNEL_URL="https://gitlab.freedesktop.org/tomeu/linux/-/archive/panfrost-veyron-fix/linux-panfrost-veyron-fix.tar.gz" -export ARCH=${KERNEL_ARCH} -export CROSS_COMPILE="${GCC_ARCH}-" - -mkdir -p /kernel -wget -qO- ${KERNEL_URL} | tar -xz --strip-components=1 -C /kernel -cd /kernel -./scripts/kconfig/merge_config.sh ${DEFCONFIG} /tmp/clone/.gitlab-ci/${KERNEL_ARCH}.config -make -j12 ${KERNEL_IMAGE_NAME} dtbs -cp arch/${KERNEL_ARCH}/boot/${KERNEL_IMAGE_NAME} /artifacts/. -cp ${DEVICE_TREES} /artifacts/. -rm -rf /kernel - - -############### Create rootfs -cp /tmp/clone/.gitlab-ci/create-rootfs.sh /artifacts/rootfs/. -mkdir -p /artifacts/rootfs/bin -cp /usr/bin/qemu-aarch64-static /artifacts/rootfs/bin -cp /usr/bin/qemu-arm-static /artifacts/rootfs/bin - -set +e -debootstrap --variant=minbase --arch=${DEBIAN_ARCH} testing /artifacts/rootfs/ http://deb.debian.org/debian -cat /artifacts/rootfs/debootstrap/debootstrap.log -set -e -chroot /artifacts/rootfs sh /create-rootfs.sh - -rm /artifacts/rootfs/bin/qemu-arm-static -rm /artifacts/rootfs/bin/qemu-aarch64-static -rm /artifacts/rootfs/create-rootfs.sh - diff --git a/.gitlab-ci/lava-gitlab-ci.yml b/.gitlab-ci/lava-gitlab-ci.yml index 763b06d97ba..cf896d720cd 100644 --- a/.gitlab-ci/lava-gitlab-ci.yml +++ b/.gitlab-ci/lava-gitlab-ci.yml @@ -36,7 +36,7 @@ include: DEFCONFIG=${DEFCONFIG} DEVICE_TREES="${DEVICE_TREES}" KERNEL_IMAGE_NAME=${KERNEL_IMAGE_NAME} - bash .gitlab-ci/lava-debian-install.sh' + bash .gitlab-ci/container/lava_arm.sh' DEBIAN_VERSION: ${LAVA_DEBIAN_VERSION} lava_armhf: