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'