Files
xen/automation/gitlab-ci/build.yaml
T
Oleksii Kurochko da95e36975 automation: temporarily disable CONFIG_COVERAGE for RISC-V randconfig jobs
As common isn't built for RISC-V architecture now, accordingly,
common/coverage (where __gconv_* function are defined) isn't built either
but randconfig may decide to enable CONFIG_COVERAGE which will lead to
the following compilation error:

riscv64-linux-gnu-ld: prelink.o: in function `.L0 ':
arch/riscv/early_printk.c:(.text+0x18):
    undefined reference to `__gcov_init'
riscv64-linux-gnu-ld: arch/riscv/early_printk.c:(.text+0x40):
    undefined reference to `__gcov_exit'

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
2023-01-09 17:20:19 +00: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:
- x86_64
.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-arm32-gcc
HYPERVISOR_ONLY: y
debian-unstable-gcc-arm32-debug:
extends: .gcc-arm32-cross-build-debug
variables:
CONTAINER: debian:unstable-arm32-gcc
HYPERVISOR_ONLY: y
debian-unstable-gcc-arm32-randconfig:
extends: .gcc-arm32-cross-build
variables:
CONTAINER: debian:unstable-arm32-gcc
HYPERVISOR_ONLY: y
RANDCONFIG: y
debian-unstable-gcc-arm32-debug-randconfig:
extends: .gcc-arm32-cross-build-debug
variables:
CONTAINER: debian:unstable-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
riscv64-cross-gcc:
extends: .gcc-riscv64-cross-build
variables:
CONTAINER: archlinux:riscv64
KBUILD_DEFCONFIG: tiny64_defconfig
HYPERVISOR_ONLY: y
riscv64-cross-gcc-debug:
extends: .gcc-riscv64-cross-build-debug
variables:
CONTAINER: archlinux:riscv64
KBUILD_DEFCONFIG: tiny64_defconfig
HYPERVISOR_ONLY: y
riscv64-cross-gcc-randconfig:
extends: .gcc-riscv64-cross-build
variables:
CONTAINER: archlinux:riscv64
KBUILD_DEFCONFIG: tiny64_defconfig
RANDCONFIG: y
EXTRA_FIXED_RANDCONFIG:
CONFIG_COVERAGE=n
riscv64-cross-gcc-debug-randconfig:
extends: .gcc-riscv64-cross-build-debug
variables:
CONTAINER: archlinux: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