mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 17:34:18 +03:00
c7f11d0a6c
This introduces a CI job for validating DCO sign-off in every commit message. The CI jobs are not provided any information on what the baseline commit for the branch was. We can't compare against the forked repo's master branch, as there's no guarantee the user is keeping master up2date in their fork. Thus we add the master upstream repo as a git remote and identify the common ancestor. Reviewed-by: Andrea Bolognani <abologna@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
221 lines
6.1 KiB
YAML
221 lines
6.1 KiB
YAML
variables:
|
|
MAKE: make
|
|
GIT_DEPTH: 100
|
|
|
|
stages:
|
|
- prebuild
|
|
- native_build
|
|
- cross_build
|
|
|
|
|
|
# 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:
|
|
- mkdir -p ccache
|
|
- export CC="ccache gcc"
|
|
- export CCACHE_BASEDIR=${PWD}
|
|
- export CCACHE_DIR=${PWD}/ccache
|
|
script:
|
|
- mkdir build
|
|
- cd build
|
|
- ../autogen.sh || (cat config.log && exit 1)
|
|
- $MAKE -j $(getconf _NPROCESSORS_ONLN) 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-.*$/
|
|
|
|
|
|
# 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:
|
|
- mkdir -p ccache
|
|
- export CC="ccache ${ABI}-gcc"
|
|
- export CCACHE_BASEDIR=${PWD}
|
|
- export CCACHE_DIR=${PWD}/ccache
|
|
script:
|
|
- mkdir build
|
|
- cd build
|
|
- ../autogen.sh $CONFIGURE_OPTS || (cat config.log && exit 1)
|
|
- $MAKE -j $(getconf _NPROCESSORS_ONLN)
|
|
|
|
# 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-30:
|
|
<<: *native_build_default_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-fedora-30:latest
|
|
|
|
x64-fedora-31:
|
|
<<: *native_build_extra_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-fedora-31: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-1604:
|
|
<<: *native_build_default_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-ubuntu-1604:latest
|
|
|
|
x64-ubuntu-1804:
|
|
<<: *native_build_extra_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-ubuntu-1804:latest
|
|
|
|
|
|
# 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-30:
|
|
<<: *cross_build_default_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-fedora-30-cross-mingw32:latest
|
|
|
|
mingw64-fedora-30:
|
|
<<: *cross_build_default_job_definition
|
|
image: quay.io/libvirt/buildenv-libvirt-fedora-30-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
|
|
script:
|
|
- mkdir build
|
|
- cd build
|
|
- ../autogen.sh --prefix=$(pwd)/../vroot || (cat config.log && exit 1)
|
|
- $MAKE -j $(getconf _NPROCESSORS_ONLN) -C docs
|
|
- $MAKE -j $(getconf _NPROCESSORS_ONLN) -C docs install
|
|
- cd ..
|
|
- mv vroot/share/doc/libvirt/html/ website
|
|
image: quay.io/libvirt/buildenv-libvirt-fedora-31:latest
|
|
artifacts:
|
|
expose_as: 'Website'
|
|
name: 'website'
|
|
when: on_success
|
|
expire_in: 30 days
|
|
paths:
|
|
- website
|
|
|
|
|
|
# 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
|
|
script:
|
|
- mkdir build
|
|
- cd build
|
|
- ../autogen.sh || (cat config.log && exit 1)
|
|
- $MAKE -j $(getconf _NPROCESSORS_ONLN) -C src generated-sources
|
|
- $MAKE -j $(getconf _NPROCESSORS_ONLN) -C po libvirt.pot
|
|
- cd ..
|
|
- mv build/po/libvirt.pot libvirt.pot
|
|
image: quay.io/libvirt/buildenv-libvirt-fedora-31: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 master branch and -maint branches, since we only need
|
|
# to test developer's personal branches.
|
|
dco:
|
|
stage: prebuild
|
|
image: quay.io/libvirt/buildenv-libvirt-fedora-31:latest
|
|
script:
|
|
- ./scripts/require-dco.py
|
|
only:
|
|
- branches
|
|
except:
|
|
- /^v.*-maint$/
|