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