詹金斯Paramerized触发器+复制工件


9

我正在设置Jenkins来处理我们的发行版本。一个发行版本由Windows安装程序组成,该安装程序包含一些必须在Linux上构建的二进制文件。

这是我到目前为止的内容:

  • Windows部分和Linux部分设置为单独的Jenkins项目。
  • Windows项目已参数化,并使用Subversion标记进行构建和发布。
  • 作为其构建的一部分,Windows项目将为Linux项目触发相同Subversion标记的构建(使用Parameterized Trigger插件),然后将工件从Linux项目复制(使用Copy Artifact插件)到Windows项目的工作区,以便它们可以包含在Windows安装程序中。

我受阻的地方:现在,设置“复制工件”以复制上一次成功的构建。配置“复制工件”以从参数化触发器触发的确切构建中进行复制似乎更可靠,但是我在弄清楚如何使该工作变得困难。我认为有一个用于“构建选择器”参数的选项可以帮助您解决此问题,但我无法弄清楚应如何设置(而在构建过程中花一个小时,盲目尝试不同的可能性会很痛苦。或两个来查找成功或失败)。

我应该如何设置?构建选择器如何工作?

Answers:


11

完成触发的构建后,将有一个新的env变量设置为该触发的构建的内部版本号,称为TRIGGERED_BUILD_NUMBER_ <作业名称>。您可以使用它专门复制回工件:

  1. Windows内部版本(称为“ WindowsBuild ”)使用参数化触发器插件调用Linux内部版本(称为“ LinuxBuild ”)。

    您已经掌握了这一部分,只需确保选中“ 阻止”,直到触发的项目完成其构建,并且如果Linux构建失败,则当然会使构建失败。

  2. 另一个项目步骤的复制工件中,下一步:

    项目名称:LinuxBuild

    哪个版本:特定版本

    内部版本号:$ TRIGGERED_BUILD_NUMBER_LinuxBuild (所有项目名称的字符均不是_a-zA-Z或0-9而不是_;多个字符都压缩为一个_)。


应该手动设置“ $ TRIGGERED_BUILD_NUMBER_ <下游作业>”环境变量吗?我无法在上游或下游环境变量中找到它。
harish

1
从插件维基发现,如果选中了“阻止直到触发的项目完成其构建”,则将自动设置$ TRIGGERED_BUILD_NUMBER_ <downstreamjob>。
harish
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.