【发布时间】:2015-07-31 09:21:25
【问题描述】:
我在 Jenkins 有两份工作:
作业 A:构建源代码 + 运行单元测试,由 SCM 更改触发。这很快。它本身不会触发任何东西
工作 B:构建安装程序。这需要一些时间。它是通过监视作业 A 的成功构建(“在构建其他项目后构建”)触发的。 它使用来自作业 A 的工件。
可能会在运行作业 B 的单次运行时启动多个作业 A 构建。
Job A #1 -> triggers Job B #1
|
Job A #2 |
|
Job A #3 -. ` Job B #1 finishes
`-> triggers Job B #2
Job A #4 |
|
Job A #5 |
| ` Job B #2 finishes
`-----------> triggers job B #3
我的问题是:如何确定 A 的构建号触发了 B 的某个构建号,所以在作业 B 中我可以从作业 A 的确切构建中复制工件?
“复制工件”插件允许指定特定的内部版本号,但我从哪里获得它?
【问题讨论】:
-
我认为您也应该能够使用另一种方法。您可能可以使用 groovy 找到关于上游构建的最后一个构建号,将其递增,并将该值分配给动态参数。这意味着它将是在构建队列中生成的数字,只要它被转发到下游,在需要引用它时应该保持不变。
-
我需要换一种方式。我需要将下游作业的内部版本号传递给上游作业。知道怎么做吗?
标签: jenkins continuous-integration