variables: GIT_DEPTH: 100 stages: - containers - builds - integration_tests - sanity_checks .script_variables: &script_variables | export CCACHE_BASEDIR="$(pwd)" export CCACHE_DIR="$CCACHE_BASEDIR/ccache" export CCACHE_MAXSIZE="500M" export PATH="$CCACHE_WRAPPERSDIR:$PATH" export VIR_TEST_VERBOSE="1" export VIR_TEST_DEBUG="1" include: - '/ci/gitlab.yml' - '/ci/integration.yml' .native_build_job: cache: paths: - ccache/ key: "$CI_JOB_NAME" script: - *script_variables - meson setup build --werror $MESON_ARGS || (cat build/meson-logs/meson-log.txt && exit 1) - meson dist -C build --no-tests - if test -x /usr/bin/rpmbuild && test "$RPM" != "skip"; then rpmbuild --clean --nodeps --define "_without_mingw 1" --define "_topdir $PWD/rpmbuild/" -ta build/meson-dist/libvirt-*.tar.xz; mv rpmbuild/RPMS/x86_64/ libvirt-rpms/; else meson compile -C build; meson test -C build --no-suite syntax-check --print-errorlogs; fi .native_build_job_prebuilt_env: extends: - .native_build_job - .gitlab_native_build_job_prebuilt_env .native_build_job_local_env: extends: - .native_build_job - .gitlab_native_build_job_local_env .cross_build_job: cache: paths: - ccache/ key: "$CI_JOB_NAME" script: - *script_variables - meson setup build --werror $MESON_OPTS || (cat build/meson-logs/meson-log.txt && exit 1) - meson compile -C build - if test "$CROSS" = "i686" ; then meson test -C build --no-suite syntax-check --print-errorlogs ; fi .cross_build_job_prebuilt_env: extends: - .cross_build_job - .gitlab_cross_build_job_prebuilt_env .cross_build_job_local_env: extends: - .cross_build_job - .gitlab_cross_build_job_local_env # 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_job: script: - *script_variables - meson setup build --werror -Dsystem=true || (cat build/meson-logs/meson-log.txt && exit 1) - DESTDIR=$(pwd)/install ninja -C build install-web - mv install/usr/share/doc/libvirt/html/ website artifacts: expose_as: 'Website' name: 'website' when: on_success expire_in: 30 days paths: - website website_prebuilt_env: extends: - .website_job - .gitlab_native_build_job_prebuilt_env needs: - job: x86_64-almalinux-8-container optional: true variables: NAME: almalinux-8 website_local_env: extends: - .website_job - .gitlab_native_build_job_local_env variables: IMAGE: docker.io/library/almalinux:8 NAME: almalinux-8 .codestyle_job: stage: sanity_checks script: - *script_variables - meson setup build --werror || (cat build/meson-logs/meson-log.txt && exit 1) - ninja -C build libvirt-pot-dep - meson test -C build --suite syntax-check --no-rebuild --print-errorlogs codestyle_prebuilt_env: extends: - .codestyle_job - .gitlab_native_build_job_prebuilt_env needs: - job: x86_64-opensuse-leap-154-container optional: true variables: NAME: opensuse-leap-154 codestyle_local_env: extends: - .codestyle_job - .gitlab_native_build_job_local_env variables: IMAGE: registry.opensuse.org/opensuse/leap:15.4 NAME: opensuse-leap-154 # 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: image: $CI_REGISTRY/$RUN_UPSTREAM_NAMESPACE/libvirt/ci-$NAME:latest stage: builds variables: NAME: almalinux-8 before_script: - cat /packages.txt needs: - job: x86_64-almalinux-8-container optional: true rules: - if: '$CI_PROJECT_NAMESPACE == $RUN_UPSTREAM_NAMESPACE && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' when: on_success - when: never before_script: - *script_variables script: - meson setup build --werror || (cat build/meson-logs/meson-log.txt && exit 1) - ninja -C build libvirt-pot-dep - ninja -C build libvirt-pot - ninja -C build libvirt-pot-check - cp po/libvirt.pot libvirt.pot artifacts: expose_as: 'Potfile' name: 'potfile' when: on_success expire_in: 30 days paths: - libvirt.pot # Coverity job that is run only by schedules coverity: image: $CI_REGISTRY/$RUN_UPSTREAM_NAMESPACE/libvirt/ci-$NAME:latest stage: builds needs: - job: x86_64-almalinux-8-container optional: true before_script: - cat /packages.txt script: - curl https://scan.coverity.com/download/linux64 --form project=$COVERITY_SCAN_PROJECT_NAME --form token=$COVERITY_SCAN_TOKEN -o /tmp/cov-analysis-linux64.tgz - tar xfz /tmp/cov-analysis-linux64.tgz - meson setup build --werror || (cat build/meson-logs/meson-log.txt && exit 1) - cov-analysis-linux64-*/bin/cov-build --dir cov-int meson compile -C build - tar cfz cov-int.tar.gz cov-int - curl https://scan.coverity.com/builds?project=$COVERITY_SCAN_PROJECT_NAME --form token=$COVERITY_SCAN_TOKEN --form email=$GITLAB_USER_EMAIL --form file=@cov-int.tar.gz --form version="$(git describe --tags)" --form description="$(git describe --tags) / $CI_COMMIT_TITLE / $CI_COMMIT_REF_NAME:$CI_PIPELINE_ID" variables: NAME: almalinux-8 rules: - if: '$COVERITY_SCAN_PROJECT_NAME == null || $COVERITY_SCAN_TOKEN == null' when: never - if: '$CI_PROJECT_NAMESPACE == $RUN_UPSTREAM_NAMESPACE && $CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH' when: on_success - when: never