[JIRA] (JENKINS-57235) Seed job (job-dsl) runs trigger a rebuild of all multibranch pipelines branches

瀏覽次數:29 次
跳到第一則未讀訊息

jonathan.pigree@gmail.com (JIRA)

未讀,
2019年4月30日 下午3:10:022019/4/30
收件者:jenkinsc...@googlegroups.com
Jonathan Pigrée updated an issue
 
Jenkins / Bug JENKINS-57235
Seed job (job-dsl) runs trigger a rebuild of all multibranch pipelines branches
Change By: Jonathan Pigrée
Summary: Seed job (job-dsl) runs trigger a rebuild of all multibranch pipelines branches
Add Comment Add Comment
 
This message was sent by Atlassian Jira (v7.11.2#711002-sha1:fdc329d)

jonathan.pigree@gmail.com (JIRA)

未讀,
2019年5月15日 下午3:38:022019/5/15
收件者:jenkinsc...@googlegroups.com
Jonathan Pigrée updated an issue
I have a fully configured as code jenkins deployed in GKE using the official Helm [chart|[https://github.com/helm/charts/tree/master/stable/jenkins]] (version 0.33.1). I also use a seed job (pre-installed by the chart) which creates all the other jobs.

My problem is that each time someone triggers the seed job, it triggers a branch indexing in every existing multibranch pipelines. Those branch indexing trigger a build for every branches discovered even when they were already previously discovered and
build builtt .

The consequence is that we get huge build spikes each time someone runs the jenkins seed. I searched the web for months for a fix but all I could find was workarounds. The latest I put in place is to install the "Basic Branch Strategy plugin" and enforce the newly added "skip initial build on first branch indexing" strategy on all my multibranch pipelines. It fixed my problem but the downside is that, my newly discovered branches stopped building automatically so the workaround isn't satisfying.

From what I understood, the seed job recreates all its managed jobs every time it is run, so I guess the problem must come from there but I don't know how to confirm it.

I can debug this further but I will need a bit of help (debugging tips).

To me the solutions are:
* Fix either the seed or the way the multibranch pipelines handles recreation.
* Create a basic branch strategy which filters an initial trigger when the branch was already built before and the current commit is the same than the previous build's.

I can provide further information if needed. I can even submit a fix if it is trivial/simple (I am not a Java developer).

 

Thanks for your help!

 

 

mail@daniel-spilker.com (JIRA)

未讀,
2019年6月17日 上午8:14:022019/6/17
收件者:jenkinsc...@googlegroups.com

jonathan.pigree@gmail.com (JIRA)

未讀,
2019年6月17日 下午1:53:072019/6/17
收件者:jenkinsc...@googlegroups.com
Jonathan Pigrée commented on Bug JENKINS-57235
 
Re: Seed job (job-dsl) runs trigger a rebuild of all multibranch pipelines branches

Thanks. I found this solution myself a while ago and forgot to update the ticket.

 

jenkins@gavinmogan.com (JIRA)

未讀,
2020年2月14日 凌晨1:23:032020/2/14
收件者:jenkinsc...@googlegroups.com

Jonathan Pigrée -

https://xkcd.com/979/

What did you find out? How did you fix it?

This message was sent by Atlassian Jira (v7.13.6#713006-sha1:cc4451f)
Atlassian logo

jonathan.pigree@gmail.com (JIRA)

未讀,
2020年2月14日 下午3:26:062020/2/14
收件者:jenkinsc...@googlegroups.com
Jonathan Pigrée edited a comment on Bug JENKINS-57235
Hi [~halkeye]. Sorry, Actually the solution is in the Jira ticket duplicated ( JENKISN JENKINS -43693).

=> https://issues.jenkins-ci.org/browse/JENKINS-43693?focusedCommentId=296900&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-296900

In short, you have to set fixed ids in the branch sources.

The bug comes from the job-dsl plugin which autogenerates branch sources ids on every run (when they are not set), thus recreating branch sources which have to "takeover" and schedule a new build doing so.

What is truly missleading is that this behavior is not mentioned in the seed documentation AND the examples do not set ids.

jonathan.pigree@gmail.com (JIRA)

未讀,
2020年2月14日 下午3:26:072020/2/14
收件者:jenkinsc...@googlegroups.com

Hi Gavin Mogan. Sorry, Actually the solution is in the Jira ticket duplicated (JENKISN-43693).

=> https://issues.jenkins-ci.org/browse/JENKINS-43693?focusedCommentId=296900&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-296900

In short, you have to set fixed ids in the branch sources.

The bug comes from the job-dsl plugin which autogenerates branch sources ids on every run (when they are not set), thus recreating branch sources which have to "takeover" and schedule a new build doing so.

What is truly missleading is that this behavior is not mentioned in the seed documentation AND the examples do not set ids.

jenkins@gavinmogan.com (JIRA)

未讀,
2020年2月14日 下午3:36:032020/2/14
收件者:jenkinsc...@googlegroups.com

Ah, interesting, I actually found a different problem, I did also figure it out eventually from reading the other bugs.

 

https://github.com/halkeye/jenkins-jobs/blob/master/jobs.groovy#L59-L84

 

Buildstrategies, by default, is an OR, so it would discover branches, or skip indexing, but not both. So I had to convert it to an AND

jonathan.pigree@gmail.com (JIRA)

未讀,
2020年2月14日 下午4:00:032020/2/14
收件者:jenkinsc...@googlegroups.com

Oh, So you had another issue then. Glad that you resolved it.

mail@daniel-spilker.com (JIRA)

未讀,
2020年3月11日 上午9:05:032020/3/11
收件者:jenkinsc...@googlegroups.com
Change By: Daniel Spilker
Status: Fixed but Unreleased Closed
This message was sent by Atlassian Jira (v7.13.12#713012-sha1:6e07c38)
Atlassian logo
回覆所有人
回覆作者
轉寄
0 則新訊息