  Background: Continuous Integration (CI) systems are now the bedrock of
several software development practices. Several tools such as TravisCI,
CircleCI, and Hudson, that implement CI practices, are commonly adopted by
software engineers. However, the way that software engineers use these tools
could lead to what we call "Continuous Integration Theater", a situation in
which software engineers do not employ these tools effectively, leading to
unhealthy CI practices. Aims: The goal of this paper is to make sense of how
commonplace are these unhealthy continuous integration practices being employed
in practice. Method: By inspecting 1,270 open-source projects that use
TravisCI, the most used CI service, we quantitatively studied how common is to
use CI (1) with infrequent commits, (2) in a software project with poor test
coverage, (3) with builds that stay broken for long periods, and (4) with
builds that take too long to run. Results: We observed that 748 ($sim$60%)
projects face infrequent commits, which essentially makes the merging process
harder. Moreover, we were able to find code coverage information for 51
projects. The average code coverage was 78%, although Ruby projects have a
higher code coverage than Java projects (86% and 63%, respectively). However,
some projects with very small coverage ($sim$4%) were found. Still, we observed
that 85% of the studied projects have at least one broken build that take more
than four days to be fixed. Interestingly, very small projects (up to 1,000
lines of code) are the ones that take the longest to fix broken builds.
Finally, we noted that, for the majority of the studied projects, the build is
executed under the 10 minutes rule of thumb. Conclusions: Our results are
important to an increasing community of software engineers that employ CI
practices on daily basis but may not be aware of bad practices that are
eventually employed.
