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