(Git plugin) Build trigger when branch is deleted in GitHub?

272 views
Skip to first unread message

Alejandro Villarreal

unread,
Apr 12, 2018, 4:26:41 PM4/12/18
to Jenkins Users

I noticed that the github service/integration for the Jenkins Git Plugin triggers builds when branches are deleted in Github. Those builds fail because they try to checkout a SHA1 that just got deleted from the repository, and they're "polluting" my Jenkins dashboard, since I'm seeing projects with failed builds when the actual code builds just fine.


Is that expected? That a branch deletion in Github triggers a build in Jenkins? I'm thinking that if anything needs to change, or at least be more configurable, it's probably the Github integration. If it didn't send notifications for branch deletions, this problem would go away.

Mark Waite

unread,
Apr 12, 2018, 4:43:46 PM4/12/18
to jenkins...@googlegroups.com
I have never seen a case where a job is triggered by branch deletion.

The GitHub Branch Source plugin will (correctly) disable a job associated with a branch when branch deletion is detected, and will (correctly) remove the job according to the settings for that repository.

If the GitHub webhooks are notifying Jenkins of a branch deletion, that seems like a good thing, not a bad thing.

Mark Waite

On Thu, Apr 12, 2018 at 2:26 PM Alejandro Villarreal <al...@alexvy86.com> wrote:

I noticed that the github service/integration for the Jenkins Git Plugin triggers builds when branches are deleted in Github. Those builds fail because they try to checkout a SHA1 that just got deleted from the repository, and they're "polluting" my Jenkins dashboard, since I'm seeing projects with failed builds when the actual code builds just fine.


Is that expected? That a branch deletion in Github triggers a build in Jenkins? I'm thinking that if anything needs to change, or at least be more configurable, it's probably the Github integration. If it didn't send notifications for branch deletions, this problem would go away.

--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/bbd05bc3-315a-4264-9937-26ac710ade07%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Alejandro Villarreal

unread,
Apr 26, 2018, 3:39:23 PM4/26/18
to Jenkins Users
Wow, sorry for the delay, I thought I was going to get some notification if someone replied, but if I did I missed it.

My setup is pretty simple so I'd like to think this issue is easy to reproduce. I'm only using the Git plugin, not the GitHub Branch Source plugin, and I have the "Jenkins (Git plugin)" Service installed on my GitHub repo (under Settings -> Integrations and Services). Per the Git Plugin's documenation, my jobs only have a build trigger of "Poll SCM" without a schedule (so they are only triggered by push notifications from github). What is that setup supposed to do if I delete a branch? The notification sent to Jenkins seems to be identical for a regular push and when the branch gets deleted:

Received notification from <github IP> ⇒ http://<my-jenkins-url>/git/notifyCommit for uri = https://github.com/<my-repo> ; sha1 = null ; branches = [<my-branch>]

I should also note that I have a single Jenkins job with a wildcard branch name to catch and build several feature branches, so I wouldn't want a branch deletion to disable or delete the job, but I think it shouldn't be triggered either. Since you've never seen it happen, I imagine that's the desired behavior, right?

Alejandro Villarreal

unread,
May 1, 2018, 8:11:25 PM5/1/18
to Jenkins Users
Mark, did you get a chance to read my reply? If I understood you correctly, what I'm seeing is probably unexpected behavior and I can very easily reproduce it, so I'd be happy to file an issue in JIRA if needed.

Mark Waite

unread,
May 1, 2018, 8:58:52 PM5/1/18
to jenkins...@googlegroups.com
I've not done any investigation.  My time is quite limited during the week.  I'm unlikely to investigate until this weekend at the earliest.

I assume that you're using a multi-branch Pipeline job.  If that assumption is wrong, please share the type of job you're using.

If you can upload a gist of the job definition and include the URL of that gist in a response, that makes it even less ambiguous.

I've never used a GitHub service.  GitHub says that services will be officially deprecated 1 October 2018 and have not had new features since 25 April 2016.  See https://developer.github.com/changes/2018-04-25-github-services-deprecation/  for more details.

I see that the jenkinsci/git-plugin repository has services enabled to notify the obsolete CI service, but is not using a service to notify the current CI service.  I'm confident that means the current CI service is using webhooks rather than a GitHub service.

You're welcome to file a bug report.  A bug report won't speed (or slow) my investigation.  If you decide to file a bug report, please follow the bug reporting suggestions on the Jenkins wiki so that the bug report allows anyone to duplicate the behavior you're seeing.

Mark Waite

Alejandro Villarreal

unread,
May 2, 2018, 12:15:41 AM5/2/18
to Jenkins Users
Thanks, no rush, I just wanted to make sure my reply didn't get lost, like I missed yours. I'm actually using a freestyle job, here's a gist with the XML definition, with some sensitive parts edited out (surrounded by [[ ]])

I didn't know about GitHub services being deprecated, I'll have to look into that. I actually tried setting up the webhooks manually in GitHub at first, but I didn't find a way of sending the "branches" parameter; since I have several Jenkins jobs for the same project but interested in different branches, all were triggering, no matter which branch was pushed to. Then I tried the GitHub service just for kicks and was happily surprised to see that it *did* send the branches parameter, so I kept it. And btw, it is pushing notifications to http://<my-jenkins-server>/git/notifyCommit, isn't that where they're supposed to go? The Git Plugin's documentation seems to suggest that it is...

That said, if there's a way to specify the "branches" parameter when manually setting up the webhook, I can definitely do that and set up the webhook to only trigger on push events, not branch/tag deletion, and that should fix my problem, I just haven't seen that it's possible.
Reply all
Reply to author
Forward
0 new messages