A broken build with several commits. But which one is responsible?
Add the plug-ins task to your build plan and it will automatically determine the responsible commit when a build is broken.
The plug-in shows on the build results page which commit from which author is responsible for the broken build.
We all experience it regularly: a build is broken. What now? The build was triggered by several commits. But which commit is responsible for the broken build?
What it does
This Bamboo plug-in detects a broken build and automatically runs git bisect on it. By using binary search, it is able to find a broken build much faster than testing every individual commit since the last successful build.
How I built it
I built the Bamboo plug-in with the help of the Atlassian plug-in SDK. The plug-in is written in Scala.
Challenges I ran into
Formatting the commit hash with a repository viewer to link to the underlying SCM (e.g., Bitbucket Cloud) was quite challenging.
Accomplishments that I'm proud of
I like that the plug-in shows all relevant information about the responsible commit in the build results overview page. I also like that the commit hash is linked to the viewer of the build plan's repository type so that the developer can immediately see what changes might have caused the failed build.
What I learned
A lot about the secrets of Bamboo's Java API.
- Support for running only the failed tests during git bisect's run
- Automatically assign the author of the commit who broke the build as the responsible person with Bamboo's "assign responsibility" feature