mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 22:25:25 +00:00
cab35ae380
This new template provides a standardized place where environment variables which are not static, but rather depend on the output of some shell command, can be defined for later use. This pattern is already used in libosinfo's GitLab CI integration. Defining $MAKEFLAGS there means we don't need to call getconf over and over, and the actual build steps don't end up drowned in the noise. Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
244 lines
6.4 KiB
YAML
244 lines
6.4 KiB
YAML
variables:
|
|
MAKE: make
|
|
GIT_DEPTH: 100
|
|
|
|
stages:
|
|
- prebuild
|
|
- native_build
|
|
- cross_build
|
|
|
|
.script_variables: &script_variables |
|
|
export MAKEFLAGS="-j$(getconf _NPROCESSORS_ONLN)"
|
|
|
|
# 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
|
|
- 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 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:
|
|
- *script_variables
|
|
- 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
|
|
|
|
# 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
|
|
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-fedora-31: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-fedora-31: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 ..
|
|
- 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
|
|
before_script:
|
|
- *script_variables
|
|
script:
|
|
- ./scripts/require-dco.py
|
|
only:
|
|
- branches
|
|
except:
|
|
- /^v.*-maint$/
|
|
- master
|