mirror of
https://gitlab.freedesktop.org/wayland/weston
synced 2024-07-21 02:25:36 +00:00
CI: Add initial AArch64 support
This only runs a single build job, to build without GL and not run any tests, as KVM support is not yet included. Signed-off-by: Daniel Stone <daniels@collabora.com>
This commit is contained in:
parent
20bb260f7d
commit
daaa518b0e
|
@ -104,6 +104,12 @@ check-commit:
|
||||||
KERNEL_IMAGE: "bzImage"
|
KERNEL_IMAGE: "bzImage"
|
||||||
KERNEL_DEFCONFIG: "x86_64_defconfig"
|
KERNEL_DEFCONFIG: "x86_64_defconfig"
|
||||||
|
|
||||||
|
.debian-aarch64:
|
||||||
|
extends:
|
||||||
|
- .os-debian
|
||||||
|
variables:
|
||||||
|
BUILD_ARCH: "aarch64"
|
||||||
|
|
||||||
# Build our base container image, which contains the core distribution, the
|
# Build our base container image, which contains the core distribution, the
|
||||||
# toolchain, and all our build dependencies. This will be reused in the build
|
# toolchain, and all our build dependencies. This will be reused in the build
|
||||||
# stage.
|
# stage.
|
||||||
|
@ -115,6 +121,15 @@ x86_64-debian-container_prep:
|
||||||
timeout: 30m
|
timeout: 30m
|
||||||
stage: container_prep
|
stage: container_prep
|
||||||
|
|
||||||
|
aarch64-debian-container_prep:
|
||||||
|
extends:
|
||||||
|
- .ci-rules
|
||||||
|
- .debian-aarch64
|
||||||
|
- .fdo.container-build@debian
|
||||||
|
tags:
|
||||||
|
- aarch64
|
||||||
|
timeout: 30m
|
||||||
|
stage: container_prep
|
||||||
|
|
||||||
# Core templates for all of our build steps. These are reused by all build jobs
|
# Core templates for all of our build steps. These are reused by all build jobs
|
||||||
# through the `extends` keyword.
|
# through the `extends` keyword.
|
||||||
|
@ -186,6 +201,17 @@ x86_64-debian-container_prep:
|
||||||
- job: x86_64-debian-container_prep
|
- job: x86_64-debian-container_prep
|
||||||
artifacts: false
|
artifacts: false
|
||||||
|
|
||||||
|
.build-env-debian-aarch64:
|
||||||
|
tags:
|
||||||
|
- aarch64
|
||||||
|
extends:
|
||||||
|
- .debian-aarch64
|
||||||
|
- .fdo.suffixed-image@debian
|
||||||
|
- .build-env
|
||||||
|
needs:
|
||||||
|
- job: aarch64-debian-container_prep
|
||||||
|
artifacts: false
|
||||||
|
|
||||||
.test-env-debian-x86_64:
|
.test-env-debian-x86_64:
|
||||||
tags:
|
tags:
|
||||||
- kvm
|
- kvm
|
||||||
|
@ -226,8 +252,7 @@ docs-build:
|
||||||
- .build-no-test
|
- .build-no-test
|
||||||
|
|
||||||
# Building without gl-renderer, to make sure this keeps working.
|
# Building without gl-renderer, to make sure this keeps working.
|
||||||
x86_64-debian-no-gl-build:
|
.build-options-no-gl:
|
||||||
extends: .test-env-debian-x86_64
|
|
||||||
variables:
|
variables:
|
||||||
MESON_OPTIONS: >
|
MESON_OPTIONS: >
|
||||||
-Dsimple-clients=damage,im,shm,touch,dmabuf-v4l
|
-Dsimple-clients=damage,im,shm,touch,dmabuf-v4l
|
||||||
|
@ -236,6 +261,17 @@ x86_64-debian-no-gl-build:
|
||||||
-Dpipewire=false
|
-Dpipewire=false
|
||||||
-Dwerror=true
|
-Dwerror=true
|
||||||
-Dlauncher-libseat=true
|
-Dlauncher-libseat=true
|
||||||
|
|
||||||
|
x86_64-debian-no-gl-build:
|
||||||
|
extends:
|
||||||
|
- .test-env-debian-x86_64
|
||||||
|
- .build-options-no-gl
|
||||||
|
|
||||||
|
aarch64-debian-no-gl-build:
|
||||||
|
extends:
|
||||||
|
- .build-env-debian-aarch64
|
||||||
|
- .build-no-test
|
||||||
|
- .build-options-no-gl
|
||||||
|
|
||||||
# Expose docs and coverage reports, so we can show users any changes to these
|
# Expose docs and coverage reports, so we can show users any changes to these
|
||||||
# inside their merge requests, letting us check them before merge.
|
# inside their merge requests, letting us check them before merge.
|
||||||
|
|
|
@ -29,31 +29,8 @@ pip3 install sphinx_rtd_theme==0.4.3 --user
|
||||||
# Build a Linux kernel for use in testing. We enable the VKMS module so we can
|
# Build a Linux kernel for use in testing. We enable the VKMS module so we can
|
||||||
# predictably test the DRM backend in the absence of real hardware. We lock the
|
# predictably test the DRM backend in the absence of real hardware. We lock the
|
||||||
# version here so we see predictable results.
|
# version here so we see predictable results.
|
||||||
git clone --depth=1 --branch=drm-next-2020-06-11-1 https://anongit.freedesktop.org/git/drm/drm.git linux
|
#
|
||||||
cd linux
|
# To run this we use virtme, a QEMU wrapper: https://github.com/amluto/virtme
|
||||||
if [[ "${BUILD_ARCH}" = "x86-64" ]]; then
|
|
||||||
LINUX_ARCH=x86
|
|
||||||
fi
|
|
||||||
if [[ -z "${KERNEL_DEFCONFIG}" ]]; then
|
|
||||||
echo "Invalid or missing \$KERNEL_DEFCONFIG"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
if [[ -z "${KERNEL_IMAGE}" ]]; then
|
|
||||||
echo "Invalid or missing \$KERNEL_IMAGE"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
make ARCH=${LINUX_ARCH} ${KERNEL_DEFCONFIG}
|
|
||||||
make ARCH=${LINUX_ARCH} kvmconfig
|
|
||||||
./scripts/config --enable CONFIG_DRM_VKMS
|
|
||||||
make ARCH=${LINUX_ARCH} oldconfig
|
|
||||||
make ARCH=${LINUX_ARCH}
|
|
||||||
cd ..
|
|
||||||
mkdir /weston-virtme
|
|
||||||
mv linux/arch/${LINUX_ARCH}/boot/${KERNEL_IMAGE} /weston-virtme/
|
|
||||||
mv linux/.config /weston-virtme/.config
|
|
||||||
rm -rf linux
|
|
||||||
|
|
||||||
# Build virtme, a QEMU wrapper: https://github.com/amluto/virtme
|
|
||||||
#
|
#
|
||||||
# virtme makes our lives easier by abstracting handling of the console,
|
# virtme makes our lives easier by abstracting handling of the console,
|
||||||
# filesystem, etc, so we can pretend that the VM we execute in is actually
|
# filesystem, etc, so we can pretend that the VM we execute in is actually
|
||||||
|
@ -67,12 +44,43 @@ rm -rf linux
|
||||||
# results: --script-sh and --script-exec. Unfornutately they are not completely
|
# results: --script-sh and --script-exec. Unfornutately they are not completely
|
||||||
# implemented yet, so we had some trouble to use them and it was becoming
|
# implemented yet, so we had some trouble to use them and it was becoming
|
||||||
# hackery.
|
# hackery.
|
||||||
#
|
if [[ -n "${KERNEL_DEFCONFIG}" ]]; then
|
||||||
git clone https://github.com/ezequielgarcia/virtme
|
git clone --depth=1 --branch=drm-next-2020-06-11-1 https://anongit.freedesktop.org/git/drm/drm.git linux
|
||||||
cd virtme
|
cd linux
|
||||||
git checkout -b snapshot 69e3cb83b3405edc99fcf9611f50012a4f210f78
|
|
||||||
./setup.py install
|
if [[ "${BUILD_ARCH}" = "x86-64" ]]; then
|
||||||
cd ..
|
LINUX_ARCH=x86
|
||||||
|
else
|
||||||
|
echo "Invalid or missing \$BUILD_ARCH"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z "${KERNEL_DEFCONFIG}" ]]; then
|
||||||
|
echo "Invalid or missing \$KERNEL_DEFCONFIG"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
if [[ -z "${KERNEL_IMAGE}" ]]; then
|
||||||
|
echo "Invalid or missing \$KERNEL_IMAGE"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
make ARCH=${LINUX_ARCH} ${KERNEL_DEFCONFIG}
|
||||||
|
make ARCH=${LINUX_ARCH} kvmconfig
|
||||||
|
./scripts/config --enable CONFIG_DRM_VKMS
|
||||||
|
make ARCH=${LINUX_ARCH} oldconfig
|
||||||
|
make ARCH=${LINUX_ARCH}
|
||||||
|
cd ..
|
||||||
|
mkdir /weston-virtme
|
||||||
|
mv linux/arch/${LINUX_ARCH}/boot/${KERNEL_IMAGE} /weston-virtme/
|
||||||
|
mv linux/.config /weston-virtme/.config
|
||||||
|
rm -rf linux
|
||||||
|
|
||||||
|
git clone https://github.com/ezequielgarcia/virtme
|
||||||
|
cd virtme
|
||||||
|
git checkout -b snapshot 69e3cb83b3405edc99fcf9611f50012a4f210f78
|
||||||
|
./setup.py install
|
||||||
|
cd ..
|
||||||
|
fi
|
||||||
|
|
||||||
# Build and install Wayland; keep this version in sync with our dependency
|
# Build and install Wayland; keep this version in sync with our dependency
|
||||||
# in meson.build.
|
# in meson.build.
|
||||||
|
|
Loading…
Reference in a new issue