2022-05-27 16:36:03 +01:00
|
|
|
.. _ci:
|
|
|
|
|
|
2025-03-14 09:59:57 +01:00
|
|
|
Continuous Integration (CI)
|
|
|
|
|
===========================
|
|
|
|
|
|
|
|
|
|
Continuous integration (CI) requires the builds of the entire application and
|
|
|
|
|
the execution of a comprehensive set of automated tests every time there is a
|
|
|
|
|
need to commit any set of changes [1]_. The automated tests are composed
|
|
|
|
|
of unit, functional and other tests.
|
2021-07-09 15:29:26 +01:00
|
|
|
|
2022-05-27 16:36:03 +01:00
|
|
|
Most of QEMU's CI is run on GitLab's infrastructure although a number
|
|
|
|
|
of other CI services are used for specialised purposes. The most up to
|
|
|
|
|
date information about them and their status can be found on the
|
|
|
|
|
`project wiki testing page <https://wiki.qemu.org/Testing/CI>`_.
|
2021-07-09 15:29:26 +01:00
|
|
|
|
2025-03-14 09:59:57 +01:00
|
|
|
These tests are also used as gating tests before merging pull requests.
|
|
|
|
|
A gating test restricts the move of code from one stage to another on a
|
|
|
|
|
test/deployment pipeline. The step move is granted with approval. The approval
|
|
|
|
|
can be a manual intervention or a set of tests succeeding [2]_.
|
|
|
|
|
|
|
|
|
|
On QEMU, the gating process happens during the pull request. The approval is
|
|
|
|
|
done by the project leader running its own set of tests. The pull request gets
|
|
|
|
|
merged when the tests succeed.
|
|
|
|
|
|
2021-09-07 16:27:08 +02:00
|
|
|
.. include:: ci-jobs.rst.inc
|
|
|
|
|
.. include:: ci-runners.rst.inc
|
2025-03-14 09:59:57 +01:00
|
|
|
|
|
|
|
|
References
|
|
|
|
|
----------
|
|
|
|
|
|
|
|
|
|
.. [1] Humble, Jez & Farley, David (2010). Continuous Delivery:
|
|
|
|
|
Reliable Software Releases Through Build, Test, and Deployment, p. 55.
|
|
|
|
|
.. [2] Humble, Jez & Farley, David (2010). Continuous Delivery:
|
|
|
|
|
Reliable Software Releases Through Build, Test, and Deployment, p. 122.
|