ci: use separate docker images for baremetal builds

Using arm_test-base as a separate base layer as well for storage &
network bandwidth efficiency.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5381>
This commit is contained in:
Christian Gmeiner 2020-06-07 23:19:50 +02:00 committed by Marge Bot
parent 408b36a11d
commit 839bc2daa9
6 changed files with 54 additions and 178 deletions

View File

@ -274,7 +274,7 @@ arm_test-base:
- .fdo.container-build@debian
- .container
variables:
FDO_DISTRIBUTION_TAG: &arm_test-base "2020-06-07"
FDO_DISTRIBUTION_TAG: &arm_test-base "2020-06-08"
.use-arm_test-base:
extends:
@ -287,19 +287,19 @@ arm_test-base:
needs:
- arm_test-base
# x86 image with ARM rootfses for baremetal testing.
arm_test:
# x86 image with ARM64 rootfs for baremetal testing.
arm64_test:
extends:
- .use-arm_test-base
variables:
FDO_DISTRIBUTION_TAG: &arm_test "2020-06-07"
FDO_DISTRIBUTION_TAG: &arm64_test "2020-06-08"
.use-arm_test:
.use-arm64_test:
variables:
TAG: *arm_test
image: "$CI_REGISTRY_IMAGE/debian/arm_test:$TAG"
TAG: *arm64_test
image: "$CI_REGISTRY_IMAGE/debian/arm64_test:$TAG"
needs:
- arm_test
- arm64_test
# Native Windows docker builds
#
@ -945,7 +945,7 @@ arm64_a630_gmem:
arm64_a306_gles2:
extends:
- .baremetal-test
- .use-arm_test
- .use-arm64_test
- .freedreno-rules
variables:
BM_KERNEL: /lava-files/Image.gz
@ -964,7 +964,7 @@ arm64_a306_gles2:
script:
- .gitlab-ci/bare-metal/fastboot.sh
needs:
- arm_test
- arm64_test
- arm_build
- meson-arm64
tags:

View File

@ -0,0 +1,5 @@
#!/bin/bash
arch=arm64
. .gitlab-ci/container/baremetal_build.sh

View File

@ -3,13 +3,6 @@
set -e
set -o xtrace
# etnaviv will eventually need armhf too.
CROSS_ARCHITECTURES="arm64"
for arch in $CROSS_ARCHITECTURES; do
dpkg --add-architecture $arch
done
############### Install packages for building
apt-get install -y ca-certificates
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
@ -43,30 +36,4 @@ apt-get install -y --no-remove \
apt install -t buster-backports -y --no-remove \
meson
# Cross-build test deps
for arch in $CROSS_ARCHITECTURES; do
apt-get install -y --no-remove \
crossbuild-essential-${arch} \
libdrm-dev:${arch} \
libegl1-mesa-dev:${arch} \
libelf-dev:${arch} \
libexpat1-dev:${arch} \
libffi-dev:${arch} \
libgbm-dev:${arch} \
libgles2-mesa-dev:${arch} \
libpng-dev:${arch} \
libstdc++6:${arch} \
libtinfo-dev:${arch} \
libegl1-mesa-dev:${arch} \
libvulkan-dev:${arch}
mkdir /var/cache/apt/archives/${arch}
done
############### Create cross-files
for arch in $CROSS_ARCHITECTURES; do
. .gitlab-ci/create-cross-file.sh $arch
done
. .gitlab-ci/container/container_post_build.sh

View File

@ -1,40 +0,0 @@
#!/bin/bash
set -e
set -o xtrace
# etnaviv will eventually need armhf too.
CROSS_ARCHITECTURES="arm64"
. .gitlab-ci/container/container_pre_build.sh
############### Create rootfs
for arch in $CROSS_ARCHITECTURES; do
DEBIAN_ARCH=$arch . .gitlab-ci/container/lava_arm.sh
done
############### Uninstall the build software
ccache --show-stats
apt-get purge -y \
bc \
bison \
bzip2 \
ccache \
cmake \
g++ \
flex \
git \
meson \
pkg-config \
python3-distutils \
procps \
u-boot-tools
for arch in $CROSS_ARCHITECTURES; do
apt-get purge -y ".*:${arch}"
done
apt-get autoremove -y --purge

View File

@ -1,95 +0,0 @@
#!/bin/bash
set -e
set -o xtrace
# etnaviv will eventually need armhf too.
CROSS_ARCHITECTURES="arm64"
for arch in $CROSS_ARCHITECTURES; do
dpkg --add-architecture $arch
done
############### Install packages for building
apt-get install -y 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 install -y --no-remove \
abootimg \
android-sdk-ext4-utils \
bc \
bison \
bzip2 \
ccache \
cmake \
cpio \
g++ \
debootstrap \
fastboot \
flex \
git \
netcat \
python3-distutils \
python3-minimal \
python3-serial \
python3.7 \
pkg-config \
procps \
u-boot-tools \
unzip
apt install -t buster-backports -y --no-remove \
meson
# Cross-build test deps
for arch in $CROSS_ARCHITECTURES; do
apt-get install -y --no-remove \
crossbuild-essential-${arch} \
libdrm-dev:${arch} \
libegl1-mesa-dev:${arch} \
libelf-dev:${arch} \
libexpat1-dev:${arch} \
libffi-dev:${arch} \
libgbm-dev:${arch} \
libgles2-mesa-dev:${arch} \
libpng-dev:${arch} \
libstdc++6:${arch} \
libtinfo-dev:${arch} \
libegl1-mesa-dev:${arch} \
libvulkan-dev:${arch}
mkdir /var/cache/apt/archives/${arch}
done
############### Create cross-files
for arch in $CROSS_ARCHITECTURES; do
. .gitlab-ci/create-cross-file.sh $arch
done
############### Uninstall the build software
apt-get purge -y \
bc \
bison \
bzip2 \
ccache \
cmake \
g++ \
flex \
git \
meson \
pkg-config \
python3-distutils \
procps \
u-boot-tools
for arch in $CROSS_ARCHITECTURES; do
apt-get purge -y ".*:${arch}"
done
apt-get autoremove -y --purge
. .gitlab-ci/container/container_post_build.sh

View File

@ -0,0 +1,39 @@
#!/bin/bash
set -e
set -o xtrace
dpkg --add-architecture $arch
apt-get update
# Cross-build test deps
apt-get install -y --no-remove \
crossbuild-essential-$arch \
libdrm-dev:$arch \
libegl1-mesa-dev:$arch \
libelf-dev:$arch \
libexpat1-dev:$arch \
libffi-dev:$arch \
libgbm-dev:$arch \
libgles2-mesa-dev:$arch \
libpng-dev:$arch \
libstdc++6:$arch \
libtinfo-dev:$arch \
libegl1-mesa-dev:$arch \
libvulkan-dev:$arch
mkdir /var/cache/apt/archives/$arch
############### Create cross-files
. .gitlab-ci/create-cross-file.sh $arch
. .gitlab-ci/container/container_pre_build.sh
############### Create rootfs
DEBIAN_ARCH=$arch . .gitlab-ci/container/lava_arm.sh
ccache --show-stats
. .gitlab-ci/container/container_post_build.sh