ci: use separate docker images for baremetal builds
authorChristian Gmeiner <christian.gmeiner@gmail.com>
Sun, 7 Jun 2020 21:19:50 +0000 (23:19 +0200)
committerMarge Bot <eric+marge@anholt.net>
Tue, 9 Jun 2020 06:29:30 +0000 (06:29 +0000)
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>

.gitlab-ci.yml
.gitlab-ci/container/arm64_test.sh [new file with mode: 0644]
.gitlab-ci/container/arm_test-base.sh
.gitlab-ci/container/arm_test.sh [deleted file]
.gitlab-ci/container/arm_test_base.sh [deleted file]
.gitlab-ci/container/baremetal_build.sh [new file with mode: 0644]

index 5a57ddf..00f5516 100644 (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:
diff --git a/.gitlab-ci/container/arm64_test.sh b/.gitlab-ci/container/arm64_test.sh
new file mode 100644 (file)
index 0000000..98e3b4a
--- /dev/null
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+arch=arm64
+
+. .gitlab-ci/container/baremetal_build.sh
index b59f6da..1454d51 100644 (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
diff --git a/.gitlab-ci/container/arm_test.sh b/.gitlab-ci/container/arm_test.sh
deleted file mode 100644 (file)
index 3bdcd2e..0000000
+++ /dev/null
@@ -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
diff --git a/.gitlab-ci/container/arm_test_base.sh b/.gitlab-ci/container/arm_test_base.sh
deleted file mode 100644 (file)
index 49b71ce..0000000
+++ /dev/null
@@ -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
diff --git a/.gitlab-ci/container/baremetal_build.sh b/.gitlab-ci/container/baremetal_build.sh
new file mode 100644 (file)
index 0000000..0952741
--- /dev/null
@@ -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