diff options
author | Tomeu Vizoso <[email protected]> | 2019-12-17 11:50:14 +0100 |
---|---|---|
committer | Marge Bot <[email protected]> | 2020-01-14 13:17:24 +0000 |
commit | 22d976454f4e50142116f4544c0bbf11134ce991 (patch) | |
tree | 2edd3c2a71450d44149faac986ef4d9148e7619a /.gitlab-ci/container | |
parent | f978e0e516c11df19573662844e2b39d89276813 (diff) |
gitlab-ci: Consolidate container and build stages for LAVA
Use the normal build job to also prepare the artifacts for LAVA jobs.
For that, the build container needs to also build the test suites,
kernel, ramdisk, etc.
Then the build job will place the just-built Mesa in the ramdisk and the
test job can generate a LAVA job and point to those artifacts.
Signed-off-by: Tomeu Vizoso <[email protected]>
Acked-by: Alyssa Rosenzweig <[email protected]>
Reviewed-by: Daniel Stone <[email protected]>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3295>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3295>
Diffstat (limited to '.gitlab-ci/container')
-rw-r--r-- | .gitlab-ci/container/arm_build.sh | 19 | ||||
-rw-r--r-- | .gitlab-ci/container/lava_arm.sh | 123 |
2 files changed, 56 insertions, 86 deletions
diff --git a/.gitlab-ci/container/arm_build.sh b/.gitlab-ci/container/arm_build.sh index c08746b1df2..a24d81ea972 100644 --- a/.gitlab-ci/container/arm_build.sh +++ b/.gitlab-ci/container/arm_build.sh @@ -13,22 +13,36 @@ apt-get -y install \ bc \ bison \ ccache \ + cmake \ + cpio \ crossbuild-essential-armhf \ + debootstrap \ flex \ g++ \ gettext \ + git \ + lavacli \ libdrm-dev:armhf \ + libegl1-mesa-dev \ + libegl1-mesa-dev:armhf \ libelf-dev \ libelf-dev:armhf \ libexpat1-dev \ libexpat1-dev:armhf \ + libgles2-mesa-dev \ + libgles2-mesa-dev:armhf \ + libpng-dev \ + libpng-dev:armhf \ libssl-dev \ + libvulkan-dev \ + libvulkan-dev:armhf \ llvm-7-dev:armhf \ llvm-8-dev \ meson \ pkg-config \ python \ python3-mako \ + unzip \ wget \ zlib1g-dev @@ -49,6 +63,11 @@ sed -i "s|/usr/bin/\([^-]*\)-linux-gnu\([^-]*\)-g|/usr/lib/ccache/\\1-linux-gnu\ # Don't need wrapper for armhf executables sed -i -e '/\[properties\]/a\' -e "needs_exe_wrapper = False" "$cross_file" +############### Generate kernel, ramdisk, test suites, etc for LAVA jobs + +DEBIAN_ARCH=arm64 . .gitlab-ci/container/lava_arm.sh +DEBIAN_ARCH=armhf . .gitlab-ci/container/lava_arm.sh + apt-get purge -y \ wget diff --git a/.gitlab-ci/container/lava_arm.sh b/.gitlab-ci/container/lava_arm.sh index 99c49ad5818..3b5cad3e9f0 100644 --- a/.gitlab-ci/container/lava_arm.sh +++ b/.gitlab-ci/container/lava_arm.sh @@ -3,110 +3,61 @@ 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-setuptools \ - python-mako \ - python3-mako \ - bison \ - flex \ - gettext \ - cmake \ - bc \ - libssl-dev \ - lavacli \ - csvkit \ - curl \ - unzip \ - wget \ - debootstrap \ - procps \ - qemu-user-static \ - cpio \ - 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} \ - libvulkan-dev:${DEBIAN_ARCH} \ - libvulkan1:${DEBIAN_ARCH} \ - libclang-7-dev:${DEBIAN_ARCH} - +if [[ "$DEBIAN_ARCH" = "arm64" ]]; then + GCC_ARCH="aarch64-linux-gnu" + KERNEL_ARCH="arm64" + DEFCONFIG="arch/arm64/configs/defconfig" + DEVICE_TREES="arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dtb arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dtb arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dtb arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dtb" + KERNEL_IMAGE_NAME="Image" +else + GCC_ARCH="arm-linux-gnueabihf" + KERNEL_ARCH="arm" + DEFCONFIG="arch/arm/configs/multi_v7_defconfig" + DEVICE_TREES="arch/arm/boot/dts/rk3288-veyron-jaq.dtb arch/arm/boot/dts/sun8i-h3-libretech-all-h3-cc.dtb" + KERNEL_IMAGE_NAME="zImage" +fi ############### Build dEQP runner -/usr/share/meson/debcrossgen --arch ${DEBIAN_ARCH} -o /tmp/cross_file.txt -EXTRA_MESON_ARGS="--cross-file /tmp/cross_file.txt" +if [[ "$DEBIAN_ARCH" = "armhf" ]]; then + EXTRA_MESON_ARGS="--cross-file /cross_file-armhf.txt" +fi . .gitlab-ci/build-cts-runner.sh -mkdir -p /artifacts/rootfs/usr/bin -mv /usr/local/bin/deqp-runner /artifacts/rootfs/usr/bin/. +mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin +mv /usr/local/bin/deqp-runner /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin/. ############### Build dEQP EXTRA_CMAKE_ARGS="-DCMAKE_C_COMPILER=${GCC_ARCH}-gcc -DCMAKE_CXX_COMPILER=${GCC_ARCH}-g++" STRIP_CMD="${GCC_ARCH}-strip" . .gitlab-ci/build-deqp-gl.sh -mv /deqp /artifacts/rootfs/. +mv /deqp /lava-files/rootfs-${DEBIAN_ARCH}/. ############### Cross-build kernel KERNEL_URL="https://gitlab.freedesktop.org/tomeu/linux/-/archive/v5.5-rc5-panfrost-fixes/linux-v5.5-rc5-panfrost-fixes.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 +if [[ "$DEBIAN_ARCH" = "armhf" ]]; then + export ARCH=${KERNEL_ARCH} + export CROSS_COMPILE="${GCC_ARCH}-" +fi + +mkdir -p kernel +wget -qO- ${KERNEL_URL} | tar -xz --strip-components=1 -C kernel +pushd kernel +./scripts/kconfig/merge_config.sh ${DEFCONFIG} ../.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 +cp arch/${KERNEL_ARCH}/boot/${KERNEL_IMAGE_NAME} /lava-files/. +cp ${DEVICE_TREES} /lava-files/. +popd +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 +debootstrap --variant=minbase --arch=${DEBIAN_ARCH} testing /lava-files/rootfs-${DEBIAN_ARCH}/ http://deb.debian.org/debian +cat /lava-files/rootfs-${DEBIAN_ARCH}/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 +cp .gitlab-ci/create-rootfs.sh /lava-files/rootfs-${DEBIAN_ARCH}/. +chroot /lava-files/rootfs-${DEBIAN_ARCH} sh /create-rootfs.sh +rm /lava-files/rootfs-${DEBIAN_ARCH}/create-rootfs.sh |