summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
authorDaniel Stone <daniels@collabora.com>2021-06-22 00:33:01 +0100
committerDaniel Stone <daniels@collabora.com>2021-08-03 11:13:23 +0000
commit3530c522f82e71eee5b8a598916b51b9b8e4434f (patch)
treeea665a10db3da8be389760eca38c404b18e52d32 /.gitlab-ci.yml
parentdaaa518b0ec9825a15041b43149e11a6d2e51660 (diff)
CI: Add full AArch64 KVM support
Build a kernel for AArch64 and run it under virtme just like we do for x86-64. This requires adding support for the AArch64 defconfig variant, and accommodating for the fact that it builds DRM as a module by default rather than built in. The virtme branch we are using has also been rebased on top of newer virtme upstream which unbreaks AArch64. Signed-off-by: Daniel Stone <daniels@collabora.com>
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r--.gitlab-ci.yml34
1 files changed, 28 insertions, 6 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index fc99c459..5a0af05b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -43,7 +43,7 @@
variables:
FDO_UPSTREAM_REPO: wayland/weston
FDO_REPO_SUFFIX: "$BUILD_OS/$BUILD_ARCH"
- FDO_DISTRIBUTION_TAG: '2021-08-02.2-meson'
+ FDO_DISTRIBUTION_TAG: '2021-08-02.3-aarch64-virt'
include:
@@ -109,6 +109,9 @@ check-commit:
- .os-debian
variables:
BUILD_ARCH: "aarch64"
+ KERNEL_IMAGE: "Image"
+ KERNEL_DEFCONFIG: "defconfig"
+ QEMU_SMP: 8 # built-in QEmu limit
# Build our base container image, which contains the core distribution, the
# toolchain, and all our build dependencies. This will be reused in the build
@@ -156,7 +159,8 @@ aarch64-debian-container_prep:
- meson --prefix="$PREFIX" -Db_sanitize=address ${MESON_OPTIONS} ..
- ninja -k0 -j${FDO_CI_CONCURRENT:-4}
- ninja install
- - virtme-run --rw --pwd --kimg /weston-virtme/${KERNEL_IMAGE} --kopt quiet --script-dir ../.gitlab-ci/virtme-scripts --qemu-opts -m 4096 -smp ${FDO_CI_CONCURRENT:-4}
+ - test -n "${QEMU_SMP}" || QEMU_SMP=${FDO_CI_CONCURRENT:-4}
+ - virtme-run --rw --pwd --kimg /weston-virtme/${KERNEL_IMAGE} --kopt quiet --script-dir ../.gitlab-ci/virtme-scripts --qemu-opts -m 4096 -smp ${QEMU_SMP}
- TEST_RES=$(cat $TESTS_RES_PATH)
- rm $TESTS_RES_PATH
- cp -R /weston-virtme ./
@@ -222,9 +226,18 @@ aarch64-debian-container_prep:
- job: x86_64-debian-container_prep
artifacts: false
+.test-env-debian-aarch64:
+ tags:
+ - kvm-aarch64
+ extends:
+ - .build-env-debian-aarch64
+ - .build-and-test
+ needs:
+ - job: aarch64-debian-container_prep
+ artifacts: false
+
# Full build, used for testing under KVM.
-x86_64-debian-full-build:
- extends: .test-env-debian-x86_64
+.build-options-full:
variables:
MESON_OPTIONS: >
-Doptimization=0
@@ -240,6 +253,16 @@ x86_64-debian-full-build:
reports:
cobertura: $BUILDDIR/meson-logs/coverage.xml
+x86_64-debian-full-build:
+ extends:
+ - .test-env-debian-x86_64
+ - .build-options-full
+
+aarch64-debian-full-build:
+ extends:
+ - .test-env-debian-aarch64
+ - .build-options-full
+
# Docs should be invariant on all architectures, so we only do it on Debian
# x86-64.
docs-build:
@@ -269,8 +292,7 @@ x86_64-debian-no-gl-build:
aarch64-debian-no-gl-build:
extends:
- - .build-env-debian-aarch64
- - .build-no-test
+ - .test-env-debian-aarch64
- .build-options-no-gl
# Expose docs and coverage reports, so we can show users any changes to these