Brown Builds: Optimizing Build Performance and Comprehension
Modern software organizations use continuous integration (CI) practices to build and test their products after each code change in order to detect quality issues as soon as possible. Unfortunately, the number of builds scales super-linearly with the number of hardware and feature configurations that should be supported. In order to avoid running out of build resources, organizations are no longer able to build individual code changes, but instead need to build groups of successive code changes. Worse, certain ?flaky? tests executed during a build lead to inconsistent results, i.e., not every failure is a real failure. This project aims to prototype and evaluate approaches for (1) early detection of flaky build results and (2) reduction of build volume by grouping related code changes.