mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-28 21:03:54 -06:00

This file was meant for defining the vocabulary for our testing efforts, but it did not age well: First, the definitions are not only about the CI part, but also about testing in general, so most of the information should rather reside in main.rst instead. Second, some vocabulary has never been really adopted by the QEMU project, for example we never really use the word "system testing" since "system" rather means the system emulator binaries in the QEMU project (and we also don't do any testing with other components like libvirt and virt-managers here). It also defines that the qtests are the "functional" tests in QEMU, which is not really up to date anymore after the "tests/functional" framework has been introduced a couple of months ago (FWIW, the qtests could rather be seen as a mix between unit testing and functional testing). To solve this problem, move the useful parts of this file into main.rst and directly into ci.rst, and drop the ones (like "system testing") that we don't really need anymore. Message-ID: <20250314085959.1585568-1-thuth@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
34 lines
1.4 KiB
ReStructuredText
34 lines
1.4 KiB
ReStructuredText
.. _ci:
|
|
|
|
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.
|
|
|
|
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>`_.
|
|
|
|
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.
|
|
|
|
.. include:: ci-jobs.rst.inc
|
|
.. include:: ci-runners.rst.inc
|
|
|
|
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.
|