Continuous integration: Difference between revisions

Content deleted Content added
No edit summary
Tags: Mobile edit Mobile app edit Android app edit
Fold the single-item goal section into benefits
Line 23:
 
In 2010, Timothy Fitz published an article detailing how [[IMVU]]'s engineering team had built and been using the first practical CI system. While his post was originally met with skepticism, it quickly caught on and found widespread adoption<ref>{{Citation | chapter=A Brief Survey of Current Software Engineering Practices in Continuous Integration and Automated Accessibility Testing | doi=10.1109/WiSPNET51692.2021.9419464| arxiv=2103.00097| s2cid=232076320| chapter-url=https://ieeexplore.ieee.org/document/9419464| title=2021 Sixth International Conference on Wireless Communications, Signal Processing and Networking (WiSPNET)| year=2021| last1=Sane| first1=Parth| pages=130–134| isbn=978-1-6654-4086-8}}</ref> as part of the [[lean software development]] methodology, also based on IMVU.
 
== Goal ==
 
One goal of CI is to validate the codebase often enough that an error ([[software bug|bug]]) is detected as a result of a relatively small change. This minimizes effort to fix the error by reducing the effort to find the change that caused it. On the other hand, if each validation cycle includes many changes, then a failure requires more effort to identify which change caused it. Generally, this means triggering a build and test on each commit, but due to limitations, sometimes multiple changes are committed between automation runs.<ref name="martinfowler" />
 
== Practices ==
Line 138 ⟶ 134:
CI benefits include:
 
* Facilitates detecting [[software bug|bugs]] earlier
* Reduces effort to find cause of bugs; if a CI test fails then changes since last good build contain causing change; if build after each change then exactly one change is the cause<ref name="martinfowler" />
* Reduces effort to fix bugs found via automated integration testing
* Avoids the chaos of integrating many changes
* When a test fails or a bug is found, reverting the codebase to a good state results in fewer lost changes