In software engineering, continuous integration (CI) is the practice of merging all developer working copies to a shared mainline several times a day.