Jenkins:Ivy build 随机触发其他项目
Posted
技术标签:
【中文标题】Jenkins:Ivy build 随机触发其他项目【英文标题】:Jenkins: Ivy build randomly triggering other projects 【发布时间】:2016-09-25 01:22:29 【问题描述】:我正在使用 Jenkins 在 GitHub 中构建一些 Ivy 项目(每个项目包含多个组件)。
比方说,我有 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
是作业参数,可以是 A
、B
或 C
。
当我触发作业时,假设传递 $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】:作业的问题在于参数化的 GitHub 项目名称。
我使用 Jenkinsfile
(管道插件)将配置替换为 DSL 作业,现在每个项目都有一个作业,问题消失了。
【讨论】:
以上是关于Jenkins:Ivy build 随机触发其他项目的主要内容,如果未能解决你的问题,请参考以下文章