詹金斯:常春藤建立随机触发其他项目

时间:2016-05-26 21:05:41

标签: git jenkins ant ivy

我正在使用Jenkins在GitHub中构建一些常春藤项目(每个项目有几个组件)。

我已经说过,Ivy项目A(包含组件a1,a2,a3),B(包含组件b1和b2)和C(组件c1,c2,c3,c4)。每个组件都有自己的ivy.xml文件。

我在Jenkins创建了一个Ivy作业,我有一个变量,我在其中设置了GitHub项目的名称,然后作业克隆了存储库。

,例如" GitHub项目"我所拥有的工作领域:https://mygithub.com/myorg/${project},而project是一个职位参数,可以是ABC

当我触发工作时,让我们说通过${project} = A,我希望构建组件a1,a2和a3。确实发生了这种情况。

但是,我还在控制台输出结尾处获得以下行:

Warning: you have no plugins providing access control for builds, so falling back to legacy behavior of permitting any downstream builds to be triggered
Triggering a new build of Build_and_JUnit » Build-develop » myorg.projectB.b1
Triggering a new build of Build_and_JUnit » Build-develop » myorg.projectC.c1
Triggering a new build of Build_and_JUnit » Build-develop » myorg.projectC.c3
Triggering a new build of Build_and_JUnit » Build-develop » myorg.projectC.c4
Finished: SUCCESS

(ps:这些只是例子)

......构建组件b1,c1,c3和c4!

我不知道为什么Jenkins正在构建其他组件,因为我只要求构建A。这些组件甚至不是A组件的依赖关系。

顺便说一下,构建的组件集是随机的 - 它甚至不一致。我假设它在第一行有警告。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

作业的问题是参数化的GitHub项目名称。

我使用 <script type="text/javascript"> var xPos, yPos; var prm = Sys.WebForms.PageRequestManager.getInstance(); prm.add_beginRequest(BeginRequestHandler); prm.add_endRequest(EndRequestHandler); function BeginRequestHandler(sender, args) { xPos = $get('scrollDiv').scrollLeft; yPos = $get('scrollDiv').scrollTop; } function EndRequestHandler(sender, args) { $get('scrollDiv').scrollLeft = xPos; $get('scrollDiv').scrollTop = yPos; } </script> (管道插件)将配置替换为DSL作业,现在每个项目都有一个作业,问题就消失了。