mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-03 11:35:19 +00:00
6190c14151
We use cirrus-run to trigger Cirrus CI jobs from GitLab CI jobs, making it possible to extend our platform coverage to include FreeBSD without having to maintain our own runners; additionally, we'll be able to ditch Travis CI and, since results for Cirrus CI jobs are reflected back to the GitLab CI jobs that triggered them, we will be able to get all information from a single dashboard. The FreeBSD and macOS job definitions can be improved further: for example, we will want to enable caching to speed up builds, and ultimately we should figure out a way to generate at least part of them, notably the list of packages to be installed, using lcitool. All of that will happen in later patches: for now, this is good enough to start using Cirrus CI. Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com>
269 lines
7.2 KiB
YAML
269 lines
7.2 KiB
YAML
variables:
|
|
GIT_DEPTH: 100
|
|
|
|
stages:
|
|
- prebuild
|
|
- native_build
|
|
- cross_build
|
|
|
|
.script_variables: &script_variables |
|
|
export MAKEFLAGS="-j$(getconf _NPROCESSORS_ONLN)"
|
|
export CCACHE_BASEDIR="$(pwd)"
|
|
export CCACHE_DIR="$CCACHE_BASEDIR/ccache"
|
|
export CCACHE_MAXSIZE="500M"
|
|
export PATH="$CCACHE_WRAPPERSDIR:$PATH"
|
|
|
|
# Common templates
|
|
|
|
# Default native build jobs that are always run
|
|
.native_build_default_job_template: &native_build_default_job_definition
|
|
stage: native_build
|
|
cache:
|
|
paths:
|
|
- ccache/
|
|
key: "$CI_JOB_NAME"
|
|
before_script:
|
|
- *script_variables
|
|
script:
|
|
- mkdir build
|
|
- cd build
|
|
- ../autogen.sh || (cat config.log && exit 1)
|
|
- $MAKE distcheck
|
|
|
|
# Extra native build jobs that are only run post-merge, or
|
|
# when code is pushed to a branch with "ci-full-" name prefix
|
|
.native_build_extra_job_template: &native_build_extra_job_definition
|
|
<<: *native_build_default_job_definition
|
|
only:
|
|
- master
|
|
- /^ci-full-.*$/
|
|
|
|
# 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 (see ci/README.rst).
|
|
.cirrus_build_default_job_template: &cirrus_build_default_job_definition
|
|
stage: native_build
|
|
image: registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:master
|
|
script:
|
|
- cirrus-run ci/cirrus/$NAME.yml.j2
|
|
only:
|
|
variables:
|
|
- $CIRRUS_GITHUB_REPO
|
|
- $CIRRUS_API_TOKEN
|
|
|
|
.cirrus_build_extra_job_template: &cirrus_build_extra_job_definition
|
|
<<: *cirrus_build_default_job_definition
|
|
only:
|
|
variables:
|
|
- $CIRRUS_GITHUB_REPO
|
|
- $CIRRUS_API_TOKEN
|
|
refs:
|
|
- master
|
|
- /^ci-full-.*$/
|
|
|
|
|
|
# Default cross build jobs that are always run
|
|
.cross_build_default_job_template: &cross_build_default_job_definition
|
|
stage: cross_build
|
|
cache:
|
|
paths:
|
|
- ccache/
|
|
key: "$CI_JOB_NAME"
|
|
before_script:
|
|
- *script_variables
|
|
script:
|
|
- mkdir build
|
|
- cd build
|
|
- ../autogen.sh $CONFIGURE_OPTS || (cat config.log && exit 1)
|
|
- $MAKE
|
|
|
|
# Extra cross build jobs that are only run post-merge, or
|
|
# when code is pushed to a branch with "ci-full-" name prefix
|
|
.cross_build_extra_job_template: &cross_build_extra_job_definition
|
|
<<: *cross_build_default_job_definition
|
|
only:
|
|
- master
|
|
- /^ci-full-.*$/
|
|
|
|
|
|
# Native architecture build + test jobs
|
|
|
|
x64-debian-9:
|
|
<<: *native_build_extra_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-debian-9:latest
|
|
|
|
x64-debian-10:
|
|
<<: *native_build_default_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-debian-10:latest
|
|
|
|
x64-debian-sid:
|
|
<<: *native_build_extra_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-debian-sid:latest
|
|
|
|
x64-centos-7:
|
|
<<: *native_build_default_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-centos-7:latest
|
|
|
|
x64-centos-8:
|
|
<<: *native_build_extra_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-centos-8:latest
|
|
|
|
x64-fedora-31:
|
|
<<: *native_build_extra_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-fedora-31:latest
|
|
|
|
x64-fedora-32:
|
|
<<: *native_build_default_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-fedora-32:latest
|
|
|
|
x64-fedora-rawhide:
|
|
<<: *native_build_default_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-fedora-rawhide:latest
|
|
|
|
x64-opensuse-151:
|
|
<<: *native_build_default_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-opensuse-151:latest
|
|
|
|
x64-ubuntu-1804:
|
|
<<: *native_build_extra_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-ubuntu-1804:latest
|
|
|
|
x64-ubuntu-2004:
|
|
<<: *native_build_default_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-ubuntu-2004:latest
|
|
|
|
x64-freebsd-12-build:
|
|
<<: *cirrus_build_default_job_definition
|
|
variables:
|
|
NAME: freebsd-12
|
|
|
|
x64-macos-1015-build:
|
|
<<: *cirrus_build_default_job_definition
|
|
variables:
|
|
NAME: macos-1015
|
|
|
|
|
|
# Cross compiled build jobs
|
|
|
|
armv6l-debian-9:
|
|
<<: *cross_build_extra_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-debian-9-cross-armv6l:latest
|
|
|
|
mips64el-debian-9:
|
|
<<: *cross_build_extra_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-debian-9-cross-mips64el:latest
|
|
|
|
mips-debian-9:
|
|
<<: *cross_build_extra_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-debian-9-cross-mips:latest
|
|
|
|
aarch64-debian-10:
|
|
<<: *cross_build_extra_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-debian-10-cross-aarch64:latest
|
|
|
|
ppc64le-debian-10:
|
|
<<: *cross_build_extra_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-debian-10-cross-ppc64le:latest
|
|
|
|
s390x-debian-10:
|
|
<<: *cross_build_default_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-debian-10-cross-s390x:latest
|
|
|
|
armv7l-debian-sid:
|
|
<<: *cross_build_default_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-debian-sid-cross-armv7l:latest
|
|
|
|
i686-debian-sid:
|
|
<<: *cross_build_extra_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-debian-sid-cross-i686:latest
|
|
|
|
mipsel-debian-sid:
|
|
<<: *cross_build_extra_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-debian-sid-cross-mipsel:latest
|
|
|
|
mingw32-fedora-rawhide:
|
|
<<: *cross_build_default_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-fedora-rawhide-cross-mingw32:latest
|
|
|
|
mingw64-fedora-rawhide:
|
|
<<: *cross_build_default_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-fedora-rawhide-cross-mingw64:latest
|
|
|
|
|
|
# This artifact published by this job is downloaded by libvirt.org to
|
|
# be deployed to the web root:
|
|
# https://gitlab.com/libvirt/libvirt/-/jobs/artifacts/master/download?job=website
|
|
website:
|
|
stage: prebuild
|
|
before_script:
|
|
- *script_variables
|
|
script:
|
|
- mkdir build
|
|
- cd build
|
|
- ../autogen.sh --prefix=$(pwd)/../vroot || (cat config.log && exit 1)
|
|
- $MAKE -C docs
|
|
- $MAKE -C docs install
|
|
- cd ..
|
|
- mv vroot/share/doc/libvirt/html/ website
|
|
image: quay.io/libvirt/buildenv-libvirt-centos-8:latest
|
|
artifacts:
|
|
expose_as: 'Website'
|
|
name: 'website'
|
|
when: on_success
|
|
expire_in: 30 days
|
|
paths:
|
|
- website
|
|
|
|
|
|
codestyle:
|
|
stage: prebuild
|
|
before_script:
|
|
- *script_variables
|
|
script:
|
|
- mkdir build
|
|
- cd build
|
|
- ../autogen.sh || (cat config.log && exit 1)
|
|
- $MAKE syntax-check
|
|
image: quay.io/libvirt/buildenv-libvirt-centos-8:latest
|
|
|
|
|
|
# This artifact published by this job is downloaded to push to Weblate
|
|
# for translation usage:
|
|
# https://gitlab.com/libvirt/libvirt/-/jobs/artifacts/master/download?job=potfile
|
|
potfile:
|
|
stage: prebuild
|
|
only:
|
|
- master
|
|
before_script:
|
|
- *script_variables
|
|
script:
|
|
- mkdir build
|
|
- cd build
|
|
- ../autogen.sh || (cat config.log && exit 1)
|
|
- $MAKE -C src generated-sources
|
|
- $MAKE -C po libvirt.pot
|
|
- cd ..
|
|
- cp po/libvirt.pot libvirt.pot
|
|
image: quay.io/libvirt/buildenv-libvirt-centos-8:latest
|
|
artifacts:
|
|
expose_as: 'Potfile'
|
|
name: 'potfile'
|
|
when: on_success
|
|
expire_in: 30 days
|
|
paths:
|
|
- libvirt.pot
|
|
|
|
|
|
# Check that all commits are signed-off for the DCO.
|
|
# Skip on "libvirt" namespace, since we only need to run
|
|
# this test on developer's personal forks from which
|
|
# merge requests are submitted
|
|
check-dco:
|
|
stage: prebuild
|
|
image: registry.gitlab.com/libvirt/libvirt-ci/check-dco:master
|
|
script:
|
|
- /check-dco
|
|
except:
|
|
variables:
|
|
- $CI_PROJECT_NAMESPACE == 'libvirt'
|