xref: /qemu/docs/devel/testing/ci.rst (revision d64db833d6e3cbe9ea5f36342480f920f3675cea)
1.. _ci:
2
3Continuous Integration (CI)
4===========================
5
6Continuous integration (CI) requires the builds of the entire application and
7the execution of a comprehensive set of automated tests every time there is a
8need to commit any set of changes [1]_. The automated tests are composed
9of unit, functional and other tests.
10
11Most of QEMU's CI is run on GitLab's infrastructure although a number
12of other CI services are used for specialised purposes. The most up to
13date information about them and their status can be found on the
14`project wiki testing page <https://wiki.qemu.org/Testing/CI>`_.
15
16These tests are also used as gating tests before merging pull requests.
17A gating test restricts the move of code from one stage to another on a
18test/deployment pipeline. The step move is granted with approval. The approval
19can be a manual intervention or a set of tests succeeding [2]_.
20
21On QEMU, the gating process happens during the pull request. The approval is
22done by the project leader running its own set of tests. The pull request gets
23merged when the tests succeed.
24
25.. include:: ci-jobs.rst.inc
26.. include:: ci-runners.rst.inc
27
28References
29----------
30
31.. [1] Humble, Jez & Farley, David (2010). Continuous Delivery:
32       Reliable Software Releases Through Build, Test, and Deployment, p. 55.
33.. [2] Humble, Jez & Farley, David (2010). Continuous Delivery:
34       Reliable Software Releases Through Build, Test, and Deployment, p. 122.
35