00125414ba
This folds the Cirrus job rules into the base job template, introducing two new variables - QEMU_JOB_CIRRUS - identifies the job as making use of Cirrus CI via cirrus-run - QEMU_JOB_OPTIONAL - identifies the job as one that is not run by default, primarily due to resource constraints. It can be manually invoked by users if they wish to validate that scenario. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-Id: <20220526110705.59952-3-berrange@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Message-Id: <20220527153603.887929-30-alex.bennee@linaro.org>
124 lines
4.4 KiB
YAML
124 lines
4.4 KiB
YAML
# Jobs that we delegate to Cirrus CI because they require an operating
|
|
# system other than Linux. These jobs will only run if the required
|
|
# setup has been performed on the GitLab account.
|
|
#
|
|
# The Cirrus CI configuration is generated by replacing target-specific
|
|
# variables in a generic template: some of these variables are provided
|
|
# when the GitLab CI job is defined, others are taken from a shell
|
|
# snippet generated using lcitool.
|
|
#
|
|
# Note that the $PATH environment variable has to be treated with
|
|
# special care, because we can't just override it at the GitLab CI job
|
|
# definition level or we risk breaking it completely.
|
|
.cirrus_build_job:
|
|
extends: .base_job_template
|
|
stage: build
|
|
image: registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:master
|
|
needs: []
|
|
timeout: 80m
|
|
allow_failure: true
|
|
script:
|
|
- source .gitlab-ci.d/cirrus/$NAME.vars
|
|
- sed -e "s|[@]CI_REPOSITORY_URL@|$CI_REPOSITORY_URL|g"
|
|
-e "s|[@]CI_COMMIT_REF_NAME@|$CI_COMMIT_REF_NAME|g"
|
|
-e "s|[@]CI_COMMIT_SHA@|$CI_COMMIT_SHA|g"
|
|
-e "s|[@]CIRRUS_VM_INSTANCE_TYPE@|$CIRRUS_VM_INSTANCE_TYPE|g"
|
|
-e "s|[@]CIRRUS_VM_IMAGE_SELECTOR@|$CIRRUS_VM_IMAGE_SELECTOR|g"
|
|
-e "s|[@]CIRRUS_VM_IMAGE_NAME@|$CIRRUS_VM_IMAGE_NAME|g"
|
|
-e "s|[@]CIRRUS_VM_CPUS@|$CIRRUS_VM_CPUS|g"
|
|
-e "s|[@]CIRRUS_VM_RAM@|$CIRRUS_VM_RAM|g"
|
|
-e "s|[@]UPDATE_COMMAND@|$UPDATE_COMMAND|g"
|
|
-e "s|[@]INSTALL_COMMAND@|$INSTALL_COMMAND|g"
|
|
-e "s|[@]PATH@|$PATH_EXTRA${PATH_EXTRA:+:}\$PATH|g"
|
|
-e "s|[@]PKG_CONFIG_PATH@|$PKG_CONFIG_PATH|g"
|
|
-e "s|[@]PKGS@|$PKGS|g"
|
|
-e "s|[@]MAKE@|$MAKE|g"
|
|
-e "s|[@]PYTHON@|$PYTHON|g"
|
|
-e "s|[@]PIP3@|$PIP3|g"
|
|
-e "s|[@]PYPI_PKGS@|$PYPI_PKGS|g"
|
|
-e "s|[@]CONFIGURE_ARGS@|$CONFIGURE_ARGS|g"
|
|
-e "s|[@]TEST_TARGETS@|$TEST_TARGETS|g"
|
|
<.gitlab-ci.d/cirrus/build.yml >.gitlab-ci.d/cirrus/$NAME.yml
|
|
- cat .gitlab-ci.d/cirrus/$NAME.yml
|
|
- cirrus-run -v --show-build-log always .gitlab-ci.d/cirrus/$NAME.yml
|
|
variables:
|
|
QEMU_JOB_CIRRUS: 1
|
|
|
|
x64-freebsd-12-build:
|
|
extends: .cirrus_build_job
|
|
variables:
|
|
NAME: freebsd-12
|
|
CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
|
|
CIRRUS_VM_IMAGE_SELECTOR: image_family
|
|
CIRRUS_VM_IMAGE_NAME: freebsd-12-3
|
|
CIRRUS_VM_CPUS: 8
|
|
CIRRUS_VM_RAM: 8G
|
|
UPDATE_COMMAND: pkg update
|
|
INSTALL_COMMAND: pkg install -y
|
|
TEST_TARGETS: check
|
|
|
|
x64-freebsd-13-build:
|
|
extends: .cirrus_build_job
|
|
variables:
|
|
NAME: freebsd-13
|
|
CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
|
|
CIRRUS_VM_IMAGE_SELECTOR: image_family
|
|
CIRRUS_VM_IMAGE_NAME: freebsd-13-0
|
|
CIRRUS_VM_CPUS: 8
|
|
CIRRUS_VM_RAM: 8G
|
|
UPDATE_COMMAND: pkg update
|
|
INSTALL_COMMAND: pkg install -y
|
|
TEST_TARGETS: check
|
|
|
|
x64-macos-11-base-build:
|
|
extends: .cirrus_build_job
|
|
variables:
|
|
NAME: macos-11
|
|
CIRRUS_VM_INSTANCE_TYPE: osx_instance
|
|
CIRRUS_VM_IMAGE_SELECTOR: image
|
|
CIRRUS_VM_IMAGE_NAME: big-sur-base
|
|
CIRRUS_VM_CPUS: 12
|
|
CIRRUS_VM_RAM: 24G
|
|
UPDATE_COMMAND: brew update
|
|
INSTALL_COMMAND: brew install
|
|
PATH_EXTRA: /usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin
|
|
PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig
|
|
TEST_TARGETS: check-unit check-block check-qapi-schema check-softfloat check-qtest-x86_64
|
|
|
|
|
|
# The following jobs run VM-based tests via KVM on a Linux-based Cirrus-CI job
|
|
.cirrus_kvm_job:
|
|
extends: .base_job_template
|
|
stage: build
|
|
image: registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:master
|
|
needs: []
|
|
timeout: 80m
|
|
script:
|
|
- sed -e "s|[@]CI_REPOSITORY_URL@|$CI_REPOSITORY_URL|g"
|
|
-e "s|[@]CI_COMMIT_REF_NAME@|$CI_COMMIT_REF_NAME|g"
|
|
-e "s|[@]CI_COMMIT_SHA@|$CI_COMMIT_SHA|g"
|
|
-e "s|[@]NAME@|$NAME|g"
|
|
-e "s|[@]CONFIGURE_ARGS@|$CONFIGURE_ARGS|g"
|
|
-e "s|[@]TEST_TARGETS@|$TEST_TARGETS|g"
|
|
<.gitlab-ci.d/cirrus/kvm-build.yml >.gitlab-ci.d/cirrus/$NAME.yml
|
|
- cat .gitlab-ci.d/cirrus/$NAME.yml
|
|
- cirrus-run -v --show-build-log always .gitlab-ci.d/cirrus/$NAME.yml
|
|
variables:
|
|
QEMU_JOB_CIRRUS: 1
|
|
QEMU_JOB_OPTIONAL: 1
|
|
|
|
|
|
x86-netbsd:
|
|
extends: .cirrus_kvm_job
|
|
variables:
|
|
NAME: netbsd
|
|
CONFIGURE_ARGS: --target-list=x86_64-softmmu,ppc64-softmmu,aarch64-softmmu
|
|
TEST_TARGETS: check
|
|
|
|
x86-openbsd:
|
|
extends: .cirrus_kvm_job
|
|
variables:
|
|
NAME: openbsd
|
|
CONFIGURE_ARGS: --target-list=i386-softmmu,riscv64-softmmu,mips64-softmmu
|
|
TEST_TARGETS: check
|