Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can Jenkins (continuous build) pinpoint the commit that caused a build failure?

Tags:

jenkins

Jenkins says a build succeeded or failed, but can it identify the exact commit (and author!) that caused a build to fail?

This issue would seem to indicate no.

Edit: From my exchange with Pace:

What I see is "include culprits", which is everyone since the last build. I don't want that. I want THE culprit, with Jenkins doing the binary search. If Jenkins does two builds 10 commits apart, I don't want 10 possible culprits, I want it to find the one.

I haven't yet heard how to do that.

like image 401
dfrankow Avatar asked Sep 29 '12 02:09

dfrankow


1 Answers

That page was talking about the "find bugs" plugin, not the normal build cycle. Depending on how things are setup Jenkins can identify the exact commit and author that caused a failure. If Jenkins has the appropriate source control plugins installed and is configured to know about the repository the build is tied to then for every build it will list the changes since the last build.

In addition, Jenkins has the capability in many of its reporting plugins to blame the faulty committer. It can, for example, send an e-mail notification on a failed build to the developer that made the faulty commit.

However, many setups make it difficult for Jenkins to know. For example, if Jenkins is configured for daily builds then there are likely many commits which could have caused the issue. It's also possible that Jenkins isn't configured to know about the source control repository, or there is no source control repository. All of these issues could cause Jenkins to be unable to identify the build breaker.

Specifically for e-mailing faulty committers you can use the email-ext plugin which has options to send e-mails to everyone that committed since the last successful build.

For a humorous take on this subject check out this approach.

like image 140
Pace Avatar answered Jan 03 '23 12:01

Pace