Files
xen/automation/gitlab-ci/test.yaml
T
Michal Orzel bd68a5f397 automation: Use custom build jobs when extra config options are needed
Currently, all the arm64 defconfig build jobs, regardless of the
container used, end up building Xen with the extra config options
specified in the main build script (e.g. CONFIG_EXPERT,
CONFIG_STATIC_MEMORY). Because these options are only needed for
specific test jobs, the current behavior of the CI is incorrect
as we add the extra options to all the defconfig builds. This means
that on arm64 there is not a single job performing proper defconfig build.

To fix this issue, add custom build jobs each time there is a need for
building Xen with additional config options. Introduce EXTRA_XEN_CONFIG
variable to be used by these jobs to store the required options. This
variable will be then read by the main build script to modify the .config
file. This will also help users to understand what is needed to run specific
test.

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
2022-09-26 15:36:22 -07:00

202 lines
4.5 KiB
YAML

.test-jobs-common:
stage: test
image: registry.gitlab.com/xen-project/xen/${CONTAINER}
except:
- master
- smoke
- /^coverity-tested\/.*/
- /^stable-.*/
# Test jobs
build-each-commit-gcc:
extends: .test-jobs-common
variables:
CONTAINER: debian:stretch
XEN_TARGET_ARCH: x86_64
CC: gcc
script:
- BASE=${BASE_SHA:-${CI_COMMIT_BEFORE_SHA}} TIP=${TIP_SHA:-${CI_COMMIT_SHA}} ./automation/gitlab-ci/build-each-commit.sh 2>&1 | tee ../build-each-commit-gcc.log
- mv ../build-each-commit-gcc.log .
artifacts:
paths:
- '*.log'
when: always
needs: []
tags:
- x86_64
qemu-alpine-arm64-gcc:
extends: .test-jobs-common
variables:
CONTAINER: debian:unstable-arm64v8
script:
- ./automation/scripts/qemu-alpine-arm64.sh 2>&1 | tee qemu-smoke-arm64.log
needs:
- alpine-3.12-gcc-arm64
- alpine-3.12-arm64-rootfs-export
- kernel-5.19-arm64-export
- qemu-system-aarch64-6.0.0-arm64-export
artifacts:
paths:
- smoke.serial
- '*.log'
when: always
tags:
- arm64
qemu-alpine-x86_64-gcc:
extends: .test-jobs-common
variables:
CONTAINER: debian:stretch
script:
- ./automation/scripts/qemu-alpine-x86_64.sh 2>&1 | tee qemu-smoke-x86_64.log
needs:
- alpine-3.12-gcc
- alpine-3.12-rootfs-export
- kernel-5.10.74-export
artifacts:
paths:
- smoke.serial
- '*.log'
when: always
tags:
- x86_64
qemu-smoke-arm64-gcc:
extends: .test-jobs-common
variables:
CONTAINER: debian:unstable-arm64v8
script:
- ./automation/scripts/qemu-smoke-arm64.sh 2>&1 | tee qemu-smoke-arm64.log
needs:
- alpine-3.12-gcc-arm64
- alpine-3.12-arm64-rootfs-export
- kernel-5.19-arm64-export
- qemu-system-aarch64-6.0.0-arm64-export
artifacts:
paths:
- smoke.serial
- '*.log'
when: always
tags:
- arm64
qemu-smoke-arm64-gcc-staticmem:
extends: .test-jobs-common
variables:
CONTAINER: debian:unstable-arm64v8
script:
- ./automation/scripts/qemu-smoke-arm64.sh static-mem 2>&1 | tee qemu-smoke-arm64.log
needs:
- alpine-3.12-gcc-arm64-staticmem
- alpine-3.12-arm64-rootfs-export
- kernel-5.19-arm64-export
- qemu-system-aarch64-6.0.0-arm64-export
artifacts:
paths:
- smoke.serial
- '*.log'
when: always
tags:
- arm64
qemu-smoke-arm64-gcc-boot-cpupools:
extends: .test-jobs-common
variables:
CONTAINER: debian:unstable-arm64v8
script:
- ./automation/scripts/qemu-smoke-arm64.sh boot-cpupools 2>&1 | tee qemu-smoke-arm64.log
needs:
- alpine-3.12-gcc-arm64-boot-cpupools
- alpine-3.12-arm64-rootfs-export
- kernel-5.19-arm64-export
- qemu-system-aarch64-6.0.0-arm64-export
artifacts:
paths:
- smoke.serial
- '*.log'
when: always
tags:
- arm64
qemu-smoke-arm32-gcc:
extends: .test-jobs-common
variables:
CONTAINER: debian:unstable-arm64v8
script:
- ./automation/scripts/qemu-smoke-arm32.sh 2>&1 | tee qemu-smoke-arm32.log
needs:
- debian-unstable-gcc-arm32
- qemu-system-aarch64-6.0.0-arm32-export
artifacts:
paths:
- smoke.serial
- '*.log'
when: always
tags:
- arm64
qemu-smoke-x86-64-gcc:
extends: .test-jobs-common
variables:
CONTAINER: debian:stretch
script:
- ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee qemu-smoke-x86-64.log
artifacts:
paths:
- smoke.serial
- '*.log'
when: always
needs:
- debian-stretch-gcc-debug
tags:
- x86_64
qemu-smoke-x86-64-clang:
extends: .test-jobs-common
variables:
CONTAINER: debian:stretch
script:
- ./automation/scripts/qemu-smoke-x86-64.sh pv 2>&1 | tee qemu-smoke-x86-64.log
artifacts:
paths:
- smoke.serial
- '*.log'
when: always
needs:
- debian-unstable-clang-debug
tags:
- x86_64
qemu-smoke-x86-64-gcc-pvh:
extends: .test-jobs-common
variables:
CONTAINER: debian:stretch
script:
- ./automation/scripts/qemu-smoke-x86-64.sh pvh 2>&1 | tee qemu-smoke-x86-64.log
artifacts:
paths:
- smoke.serial
- '*.log'
when: always
needs:
- debian-stretch-gcc-debug
tags:
- x86_64
qemu-smoke-x86-64-clang-pvh:
extends: .test-jobs-common
variables:
CONTAINER: debian:stretch
script:
- ./automation/scripts/qemu-smoke-x86-64.sh pvh 2>&1 | tee qemu-smoke-x86-64.log
artifacts:
paths:
- smoke.serial
- '*.log'
when: always
needs:
- debian-unstable-clang-debug
tags:
- x86_64