Files
xen/automation/gitlab-ci/build.yaml
T
Michal Orzel a35fccc8df automation: Switch arm32 cross builds to run on arm64
Due to the limited x86 CI resources slowing down the whole pipeline,
switch the arm32 cross builds to be executed on arm64 which is much more
capable. For that, rename the existing debian container dockerfile
from unstable-arm32-gcc to unstable-arm64v8-arm32-gcc and use
arm64v8/debian:unstable as an image. Note, that we cannot use the same
container name as we have to keep the backwards compatibility.
Take the opportunity to remove extra empty line at the end of a file.

Modify the tag of .arm32-cross-build-tmpl to arm64 and update the build
jobs accordingly.

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
2023-02-15 13:46:10 -08:00

757 lines
15 KiB
YAML

.build-tmpl: &build
stage: build
image: registry.gitlab.com/xen-project/xen/${CONTAINER}
script:
- ./automation/scripts/build 2>&1 | tee build.log
artifacts:
paths:
- binaries/
- xen-config
- '*.log'
- '*/*.log'
when: always
except:
- master
- smoke
- /^coverity-tested\/.*/
- /^stable-.*/
.gcc-tmpl:
variables: &gcc
CC: gcc
CXX: g++
.clang-tmpl:
variables: &clang
CC: clang
CXX: clang++
clang: y
.clang-8-tmpl:
variables: &clang-8
CC: clang-8
CXX: clang++-8
LD: ld.lld-8
clang: y
.x86-64-build-tmpl:
<<: *build
variables:
XEN_TARGET_ARCH: x86_64
tags:
- x86_64
.x86-64-build:
extends: .x86-64-build-tmpl
variables:
debug: n
.x86-64-build-debug:
extends: .x86-64-build-tmpl
variables:
debug: y
.x86-32-build-tmpl:
<<: *build
variables:
XEN_TARGET_ARCH: x86_32
tags:
- x86_32
.x86-32-build:
extends: .x86-32-build-tmpl
variables:
debug: n
.x86-32-build-debug:
extends: .x86-32-build-tmpl
variables:
debug: y
.gcc-x86-64-build:
extends: .x86-64-build
variables:
<<: *gcc
.gcc-x86-64-build-debug:
extends: .x86-64-build-debug
variables:
<<: *gcc
.gcc-x86-32-build:
extends: .x86-32-build
variables:
<<: *gcc
.gcc-x86-32-build-debug:
extends: .x86-32-build-debug
variables:
<<: *gcc
.clang-x86-64-build:
extends: .x86-64-build
variables:
<<: *clang
.clang-x86-64-build-debug:
extends: .x86-64-build-debug
variables:
<<: *clang
.clang-8-x86-64-build:
extends: .x86-64-build
variables:
<<: *clang-8
.clang-8-x86-64-build-debug:
extends: .x86-64-build-debug
variables:
<<: *clang-8
.clang-x86-32-build:
extends: .x86-32-build
variables:
<<: *clang
.clang-x86-32-build-debug:
extends: .x86-32-build-debug
variables:
<<: *clang
.arm32-cross-build-tmpl:
<<: *build
variables:
XEN_TARGET_ARCH: arm32
tags:
- arm64
.arm32-cross-build:
extends: .arm32-cross-build-tmpl
variables:
debug: n
.arm32-cross-build-debug:
extends: .arm32-cross-build-tmpl
variables:
debug: y
.gcc-arm32-cross-build:
extends: .arm32-cross-build
variables:
<<: *gcc
.gcc-arm32-cross-build-debug:
extends: .arm32-cross-build-debug
variables:
<<: *gcc
.arm64-build-tmpl:
<<: *build
variables:
XEN_TARGET_ARCH: arm64
tags:
- arm64
.arm64-build:
extends: .arm64-build-tmpl
variables:
debug: n
.arm64-build-debug:
extends: .arm64-build-tmpl
variables:
debug: y
.gcc-arm64-build:
extends: .arm64-build
variables:
<<: *gcc
.gcc-arm64-build-debug:
extends: .arm64-build-debug
variables:
<<: *gcc
.riscv64-cross-build-tmpl:
<<: *build
variables:
XEN_TARGET_ARCH: riscv64
tags:
- x86_64
.riscv64-cross-build:
extends: .riscv64-cross-build-tmpl
variables:
debug: n
.riscv64-cross-build-debug:
extends: .riscv64-cross-build-tmpl
variables:
debug: y
.gcc-riscv64-cross-build:
extends: .riscv64-cross-build
variables:
<<: *gcc
.gcc-riscv64-cross-build-debug:
extends: .riscv64-cross-build-debug
variables:
<<: *gcc
# Jobs below this line
archlinux-gcc:
extends: .gcc-x86-64-build
variables:
CONTAINER: archlinux:current
archlinux-gcc-debug:
extends: .gcc-x86-64-build-debug
variables:
CONTAINER: archlinux:current
centos-7-2-gcc:
extends: .gcc-x86-64-build
variables:
CONTAINER: centos:7.2
centos-7-2-gcc-debug:
extends: .gcc-x86-64-build-debug
variables:
CONTAINER: centos:7.2
centos-7-gcc:
extends: .gcc-x86-64-build
variables:
CONTAINER: centos:7
centos-7-gcc-debug:
extends: .gcc-x86-64-build-debug
variables:
CONTAINER: centos:7
debian-jessie-clang:
extends: .clang-x86-64-build
variables:
CONTAINER: debian:jessie
debian-jessie-clang-debug:
extends: .clang-x86-64-build-debug
variables:
CONTAINER: debian:jessie
debian-jessie-gcc:
extends: .gcc-x86-64-build
variables:
CONTAINER: debian:jessie
debian-jessie-gcc-debug:
extends: .gcc-x86-64-build-debug
variables:
CONTAINER: debian:jessie
debian-jessie-32-clang:
extends: .clang-x86-32-build
variables:
CONTAINER: debian:jessie-i386
debian-jessie-32-clang-debug:
extends: .clang-x86-32-build-debug
variables:
CONTAINER: debian:jessie-i386
debian-jessie-32-gcc:
extends: .gcc-x86-32-build
variables:
CONTAINER: debian:jessie-i386
debian-jessie-32-gcc-debug:
extends: .gcc-x86-32-build-debug
variables:
CONTAINER: debian:jessie-i386
debian-stretch-clang:
extends: .clang-x86-64-build
variables:
CONTAINER: debian:stretch
debian-stretch-clang-debug:
extends: .clang-x86-64-build-debug
variables:
CONTAINER: debian:stretch
debian-stretch-clang-8:
extends: .clang-8-x86-64-build
variables:
CONTAINER: debian:stretch
debian-stretch-clang-8-debug:
extends: .clang-8-x86-64-build-debug
variables:
CONTAINER: debian:stretch
debian-stretch-gcc:
extends: .gcc-x86-64-build
variables:
CONTAINER: debian:stretch
debian-stretch-gcc-debug:
extends: .gcc-x86-64-build-debug
variables:
CONTAINER: debian:stretch
debian-stretch-32-clang:
extends: .clang-x86-32-build
variables:
CONTAINER: debian:stretch-i386
debian-stretch-32-clang-debug:
extends: .clang-x86-32-build-debug
variables:
CONTAINER: debian:stretch-i386
debian-stretch-32-gcc:
extends: .gcc-x86-32-build
variables:
CONTAINER: debian:stretch-i386
debian-stretch-32-gcc-debug:
extends: .gcc-x86-32-build-debug
variables:
CONTAINER: debian:stretch-i386
debian-buster-gcc-ibt:
extends: .gcc-x86-64-build
variables:
CONTAINER: debian:buster-gcc-ibt
RANDCONFIG: y
EXTRA_FIXED_RANDCONFIG: |
CONFIG_XEN_IBT=y
debian-unstable-clang:
extends: .clang-x86-64-build
variables:
CONTAINER: debian:unstable
debian-unstable-clang-debug:
extends: .clang-x86-64-build-debug
variables:
CONTAINER: debian:unstable
debian-unstable-clang-8:
extends: .clang-8-x86-64-build
variables:
CONTAINER: debian:unstable
debian-unstable-clang-8-debug:
extends: .clang-8-x86-64-build-debug
variables:
CONTAINER: debian:unstable
debian-unstable-gcc:
extends: .gcc-x86-64-build
variables:
CONTAINER: debian:unstable
debian-unstable-gcc-debug:
extends: .gcc-x86-64-build-debug
variables:
CONTAINER: debian:unstable
debian-unstable-gcc-randconfig:
extends: .gcc-x86-64-build
variables:
CONTAINER: debian:unstable
RANDCONFIG: y
debian-unstable-gcc-debug-randconfig:
extends: .gcc-x86-64-build-debug
variables:
CONTAINER: debian:unstable
RANDCONFIG: y
debian-unstable-32-clang:
extends: .clang-x86-32-build
variables:
CONTAINER: debian:unstable-i386
debian-unstable-32-clang-debug:
extends: .clang-x86-32-build-debug
variables:
CONTAINER: debian:unstable-i386
debian-unstable-32-gcc:
extends: .gcc-x86-32-build
variables:
CONTAINER: debian:unstable-i386
debian-unstable-32-gcc-debug:
extends: .gcc-x86-32-build-debug
variables:
CONTAINER: debian:unstable-i386
fedora-gcc:
extends: .gcc-x86-64-build
variables:
CONTAINER: fedora:29
fedora-gcc-debug:
extends: .gcc-x86-64-build-debug
variables:
CONTAINER: fedora:29
# Ubuntu Trusty's Clang is 3.4 while Xen requires 3.5
ubuntu-trusty-gcc:
extends: .gcc-x86-64-build
variables:
CONTAINER: ubuntu:trusty
ubuntu-trusty-gcc-debug:
extends: .gcc-x86-64-build-debug
variables:
CONTAINER: ubuntu:trusty
ubuntu-xenial-clang:
extends: .clang-x86-64-build
variables:
CONTAINER: ubuntu:xenial
ubuntu-xenial-clang-debug:
extends: .clang-x86-64-build-debug
variables:
CONTAINER: ubuntu:xenial
ubuntu-xenial-gcc:
extends: .gcc-x86-64-build
variables:
CONTAINER: ubuntu:xenial
ubuntu-xenial-gcc-debug:
extends: .gcc-x86-64-build-debug
variables:
CONTAINER: ubuntu:xenial
ubuntu-bionic-clang:
extends: .clang-x86-64-build
variables:
CONTAINER: ubuntu:bionic
ubuntu-bionic-clang-debug:
extends: .clang-x86-64-build-debug
variables:
CONTAINER: ubuntu:bionic
ubuntu-bionic-gcc:
extends: .gcc-x86-64-build
variables:
CONTAINER: ubuntu:bionic
ubuntu-bionic-gcc-debug:
extends: .gcc-x86-64-build-debug
variables:
CONTAINER: ubuntu:bionic
ubuntu-focal-gcc:
extends: .gcc-x86-64-build
variables:
CONTAINER: ubuntu:focal
ubuntu-focal-gcc-debug:
extends: .gcc-x86-64-build-debug
variables:
CONTAINER: ubuntu:focal
ubuntu-focal-clang:
extends: .clang-x86-64-build
variables:
CONTAINER: ubuntu:focal
ubuntu-focal-clang-debug:
extends: .clang-x86-64-build-debug
variables:
CONTAINER: ubuntu:focal
opensuse-leap-clang:
extends: .clang-x86-64-build
variables:
CONTAINER: suse:opensuse-leap
opensuse-leap-clang-debug:
extends: .clang-x86-64-build-debug
variables:
CONTAINER: suse:opensuse-leap
opensuse-leap-gcc:
extends: .gcc-x86-64-build
variables:
CONTAINER: suse:opensuse-leap
opensuse-leap-gcc-debug:
extends: .gcc-x86-64-build-debug
variables:
CONTAINER: suse:opensuse-leap
opensuse-tumbleweed-clang:
extends: .clang-x86-64-build
variables:
CONTAINER: suse:opensuse-tumbleweed
allow_failure: true
opensuse-tumbleweed-clang-debug:
extends: .clang-x86-64-build-debug
variables:
CONTAINER: suse:opensuse-tumbleweed
allow_failure: true
opensuse-tumbleweed-gcc:
extends: .gcc-x86-64-build
variables:
CONTAINER: suse:opensuse-tumbleweed
allow_failure: true
opensuse-tumbleweed-gcc-debug:
extends: .gcc-x86-64-build-debug
variables:
CONTAINER: suse:opensuse-tumbleweed
allow_failure: true
alpine-3.12-gcc:
extends: .gcc-x86-64-build
variables:
CONTAINER: alpine:3.12
alpine-3.12-gcc-debug:
extends: .gcc-x86-64-build-debug
variables:
CONTAINER: alpine:3.12
alpine-3.12-clang:
extends: .clang-x86-64-build
variables:
CONTAINER: alpine:3.12
alpine-3.12-clang-debug:
extends: .clang-x86-64-build-debug
variables:
CONTAINER: alpine:3.12
# Arm32 cross-build
debian-unstable-gcc-arm32:
extends: .gcc-arm32-cross-build
variables:
CONTAINER: debian:unstable-arm64v8-arm32-gcc
HYPERVISOR_ONLY: y
debian-unstable-gcc-arm32-debug:
extends: .gcc-arm32-cross-build-debug
variables:
CONTAINER: debian:unstable-arm64v8-arm32-gcc
HYPERVISOR_ONLY: y
debian-unstable-gcc-arm32-randconfig:
extends: .gcc-arm32-cross-build
variables:
CONTAINER: debian:unstable-arm64v8-arm32-gcc
HYPERVISOR_ONLY: y
RANDCONFIG: y
debian-unstable-gcc-arm32-debug-randconfig:
extends: .gcc-arm32-cross-build-debug
variables:
CONTAINER: debian:unstable-arm64v8-arm32-gcc
HYPERVISOR_ONLY: y
RANDCONFIG: y
# Arm builds
debian-unstable-gcc-arm64:
extends: .gcc-arm64-build
variables:
CONTAINER: debian:unstable-arm64v8
debian-unstable-gcc-debug-arm64:
extends: .gcc-arm64-build-debug
variables:
CONTAINER: debian:unstable-arm64v8
debian-unstable-gcc-arm64-randconfig:
extends: .gcc-arm64-build
variables:
CONTAINER: debian:unstable-arm64v8
RANDCONFIG: y
debian-unstable-gcc-debug-arm64-randconfig:
extends: .gcc-arm64-build-debug
variables:
CONTAINER: debian:unstable-arm64v8
RANDCONFIG: y
alpine-3.12-gcc-arm64:
extends: .gcc-arm64-build
variables:
CONTAINER: alpine:3.12-arm64v8
alpine-3.12-gcc-debug-arm64:
extends: .gcc-arm64-build-debug
variables:
CONTAINER: alpine:3.12-arm64v8
alpine-3.12-gcc-arm64-randconfig:
extends: .gcc-arm64-build
variables:
CONTAINER: alpine:3.12-arm64v8
RANDCONFIG: y
alpine-3.12-gcc-debug-arm64-randconfig:
extends: .gcc-arm64-build-debug
variables:
CONTAINER: alpine:3.12-arm64v8
RANDCONFIG: y
alpine-3.12-gcc-arm64-staticmem:
extends: .gcc-arm64-build
variables:
CONTAINER: alpine:3.12-arm64v8
EXTRA_XEN_CONFIG: |
CONFIG_EXPERT=y
CONFIG_UNSUPPORTED=y
CONFIG_STATIC_MEMORY=y
alpine-3.12-gcc-debug-arm64-staticmem:
extends: .gcc-arm64-build-debug
variables:
CONTAINER: alpine:3.12-arm64v8
EXTRA_XEN_CONFIG: |
CONFIG_EXPERT=y
CONFIG_UNSUPPORTED=y
CONFIG_STATIC_MEMORY=y
alpine-3.12-gcc-arm64-boot-cpupools:
extends: .gcc-arm64-build
variables:
CONTAINER: alpine:3.12-arm64v8
EXTRA_XEN_CONFIG: |
CONFIG_EXPERT=y
CONFIG_UNSUPPORTED=y
CONFIG_SCHED_NULL=y
CONFIG_BOOT_TIME_CPUPOOLS=y
alpine-3.12-gcc-debug-arm64-boot-cpupools:
extends: .gcc-arm64-build-debug
variables:
CONTAINER: alpine:3.12-arm64v8
EXTRA_XEN_CONFIG: |
CONFIG_BOOT_TIME_CPUPOOLS=y
# RISC-V 64 cross-build
archlinux-current-gcc-riscv64:
extends: .gcc-riscv64-cross-build
variables:
CONTAINER: archlinux:current-riscv64
KBUILD_DEFCONFIG: tiny64_defconfig
HYPERVISOR_ONLY: y
archlinux-current-gcc-riscv64-debug:
extends: .gcc-riscv64-cross-build-debug
variables:
CONTAINER: archlinux:current-riscv64
KBUILD_DEFCONFIG: tiny64_defconfig
HYPERVISOR_ONLY: y
archlinux-current-gcc-riscv64-randconfig:
extends: .gcc-riscv64-cross-build
variables:
CONTAINER: archlinux:current-riscv64
KBUILD_DEFCONFIG: tiny64_defconfig
RANDCONFIG: y
EXTRA_FIXED_RANDCONFIG:
CONFIG_COVERAGE=n
archlinux-current-gcc-riscv64-debug-randconfig:
extends: .gcc-riscv64-cross-build-debug
variables:
CONTAINER: archlinux:current-riscv64
KBUILD_DEFCONFIG: tiny64_defconfig
RANDCONFIG: y
EXTRA_FIXED_RANDCONFIG:
CONFIG_COVERAGE=n
## Test artifacts common
.test-jobs-artifact-common:
stage: build
except: !reference [.test-jobs-common, except]
# Arm test artifacts
alpine-3.12-arm64-rootfs-export:
extends: .test-jobs-artifact-common
image: registry.gitlab.com/xen-project/xen/tests-artifacts/alpine:3.12-arm64v8
script:
- mkdir binaries && cp /initrd.tar.gz binaries/initrd.tar.gz
artifacts:
paths:
- binaries/initrd.tar.gz
tags:
- arm64
kernel-5.19-arm64-export:
extends: .test-jobs-artifact-common
image: registry.gitlab.com/xen-project/xen/tests-artifacts/kernel:5.19-arm64v8
script:
- mkdir binaries && cp /Image binaries/Image
artifacts:
paths:
- binaries/Image
tags:
- arm64
qemu-system-aarch64-6.0.0-arm64-export:
extends: .test-jobs-artifact-common
image: registry.gitlab.com/xen-project/xen/tests-artifacts/qemu-system-aarch64:6.0.0-arm64v8
script:
- mkdir binaries && cp /qemu-system-aarch64 binaries/qemu-system-aarch64
artifacts:
paths:
- binaries/qemu-system-aarch64
tags:
- arm64
qemu-system-aarch64-6.0.0-arm32-export:
extends: .test-jobs-artifact-common
image: registry.gitlab.com/xen-project/xen/tests-artifacts/qemu-system-aarch64:6.0.0-arm64v8
script:
- mkdir binaries && cp /qemu-system-arm binaries/qemu-system-arm
artifacts:
paths:
- binaries/qemu-system-arm
tags:
- arm64
# x86_64 test artifacts
alpine-3.12-rootfs-export:
extends: .test-jobs-artifact-common
image: registry.gitlab.com/xen-project/xen/tests-artifacts/alpine:3.12
script:
- mkdir binaries && cp /initrd.tar.gz binaries/initrd.tar.gz
artifacts:
paths:
- binaries/initrd.tar.gz
tags:
- x86_64
kernel-5.10.74-export:
extends: .test-jobs-artifact-common
image: registry.gitlab.com/xen-project/xen/tests-artifacts/kernel:5.10.74
script:
- mkdir binaries && cp /bzImage binaries/bzImage
artifacts:
paths:
- binaries/bzImage
tags:
- x86_64