==============================
Libvirt Continuous Integration
==============================

.. contents::

The libvirt project uses GitLab CI for automated testing.

Linux builds and cross-compiled Windows builds happen on GitLab CI's shared
runners, while FreeBSD and macOS coverage is achieved by triggering `Cirrus CI
<https://cirrus-ci.com/>`_ jobs behind the scenes.

Most of the tooling used to build CI pipelines is maintained as part of the
`libvirt-ci <https://gitlab.com/libvirt/libvirt-ci>`_ subproject.

GitLab CI Dashboard
===================

The dashboard below shows the current status of the GitLab CI jobs for each
repository:

Core project
------------

.. list-table::
   :widths: 80 20
   :header-rows: 1

   * - Project
     - Pipeline

   * - libvirt
     - .. image:: https://gitlab.com/libvirt/libvirt/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt/pipelines
          :alt: libvirt pipeline status


Language bindings
-----------------

.. list-table::
   :widths: 80 20
   :header-rows: 1

   * - Project
     - Pipeline

   * - libvirt-csharp
     - .. image:: https://gitlab.com/libvirt/libvirt-csharp/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-csharp/pipelines
          :alt: libvirt-csharp pipeline status

   * - libvirt-go
     - .. image:: https://gitlab.com/libvirt/libvirt-go/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-go/pipelines
          :alt: libvirt-go pipeline status

   * - libvirt-java
     - .. image:: https://gitlab.com/libvirt/libvirt-java/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-java/pipelines
          :alt: libvirt-java pipeline status

   * - libvirt-ocaml
     - .. image:: https://gitlab.com/libvirt/libvirt-ocaml/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-ocaml/pipelines
          :alt: libvirt-ocaml pipeline status

   * - libvirt-perl
     - .. image:: https://gitlab.com/libvirt/libvirt-perl/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-perl/pipelines
          :alt: libvirt-perl pipeline status

   * - libvirt-php
     - .. image:: https://gitlab.com/libvirt/libvirt-php/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-php/pipelines
          :alt: libvirt-php pipeline status

   * - libvirt-python
     - .. image:: https://gitlab.com/libvirt/libvirt-python/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-python/pipelines
          :alt: libvirt-python pipeline status

   * - libvirt-ruby
     - .. image:: https://gitlab.com/libvirt/libvirt-ruby/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-ruby/pipelines
          :alt: libvirt-ruby pipeline status

   * - libvirt-rust
     - .. image:: https://gitlab.com/libvirt/libvirt-rust/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-rust/pipelines
          :alt: libvirt-rust pipeline status


Object mappings
---------------

.. list-table::
   :widths: 80 20
   :header-rows: 1

   * - Project
     - Pipeline

   * - libvirt-cim
     - .. image:: https://gitlab.com/libvirt/libvirt-cim/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-cim/pipelines
          :alt: libvirt-cim pipeline status

   * - libvirt-dbus
     - .. image:: https://gitlab.com/libvirt/libvirt-dbus/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-dbus/pipelines
          :alt: libvirt-dbus pipeline status

   * - libvirt-glib
     - .. image:: https://gitlab.com/libvirt/libvirt-glib/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-glib/pipelines
          :alt: libvirt-glib pipeline status

   * - libvirt-go-xml
     - .. image:: https://gitlab.com/libvirt/libvirt-go-xml/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-go-xml/pipelines
          :alt: libvirt-go-xml pipeline status

   * - libvirt-snmp
     - .. image:: https://gitlab.com/libvirt/libvirt-snmp/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-snmp/pipelines
          :alt: libvirt-snmp pipeline status


Testing
-------

.. list-table::
   :widths: 80 20
   :header-rows: 1

   * - Project
     - Pipeline

   * - libvirt-ci
     - .. image:: https://gitlab.com/libvirt/libvirt-ci/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-ci/pipelines
          :alt: libvirt-ci pipeline status

   * - libvirt-test-API
     - .. image:: https://gitlab.com/libvirt/libvirt-test-API/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-test-API/pipelines
          :alt: libvirt-test-API pipeline status

   * - libvirt-tck
     - .. image:: https://gitlab.com/libvirt/libvirt-tck/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-tck/pipelines
          :alt: libvirt-tck pipeline status


Documentation / websites
------------------------

.. list-table::
   :widths: 80 20
   :header-rows: 1

   * - Project
     - Pipeline
   * - libvirt-publican
     - .. image:: https://gitlab.com/libvirt/libvirt-publican/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-publican/pipelines
          :alt: libvirt-publican pipeline status

   * - libvirt-appdev-guide-python
     - .. image:: https://gitlab.com/libvirt/libvirt-appdev-guide-python/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-appdev-guide-python/pipelines
          :alt: libvirt-appdev-guide-python pipeline status

   * - libvirt-wiki
     - .. image:: https://gitlab.com/libvirt/libvirt-wiki/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-wiki/pipelines
          :alt: libvirt-wiki pipeline status

   * - virttools-planet
     - .. image:: https://gitlab.com/libvirt/virttools-planet/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/virttools-planet/pipelines
          :alt: virttools-planet pipeline status

   * - virttools-web
     - .. image:: https://gitlab.com/libvirt/virttools-web/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/virttools-web/pipelines
          :alt: virttools-web pipeline status


Miscellaneous
-------------

.. list-table::
   :widths: 80 20
   :header-rows: 1

   * - Project
     - Pipeline

   * - libvirt-console-proxy
     - .. image:: https://gitlab.com/libvirt/libvirt-console-proxy/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-console-proxy/pipelines
          :alt: libvirt-console-proxy pipeline status

   * - libvirt-designer
     - .. image:: https://gitlab.com/libvirt/libvirt-designer/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-designer/pipelines
          :alt: libvirt-designer pipeline status

   * - libvirt-devaddr
     - .. image:: https://gitlab.com/libvirt/libvirt-devaddr/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-devaddr/pipelines
          :alt: libvirt-devaddr pipeline status

   * - libvirt-sandbox
     - .. image:: https://gitlab.com/libvirt/libvirt-sandbox/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-sandbox/pipelines
          :alt: libvirt-sandbox pipeline status

   * - libvirt-sandbox-image
     - .. image:: https://gitlab.com/libvirt/libvirt-sandbox-image/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-sandbox-image/pipelines
          :alt: libvirt-sandbox-image pipeline status

   * - libvirt-security-notice
     - .. image:: https://gitlab.com/libvirt/libvirt-security-notice/badges/master/pipeline.svg
          :target: https://gitlab.com/libvirt/libvirt-security-notice/pipelines
          :alt: libvirt-security-notice pipeline status
