获取活动选择来自上游作业的参数值

时间:2016-06-07 15:41:38

标签: jenkins groovy jenkins-plugins

使用Active Choices Plugin

使用有效选择参数进行参数化作业

Active Choices Parameters for a job

我想从上游作业中触发此作业 上游作业应使用下游作业的默认参数。

参数 UtilityPath 取决于 UtilityVersion 来评估自身并形成选项列表。

我怎么能

  1. 上游作业中获取 UtilityVersion 的groovy脚本返回的选项列表?
  2. UtilityVersion 的选择提供给参数 UtilityPath ,这样它就可以为我生成自己的选择列表(同样,在上游 >工作)。
  3. 通过我对参数 UtilityVersion UtilityPath 的选择来触发作业?

2 个答案:

答案 0 :(得分:0)

无论您的下游作业参数是什么(在groovy脚本/代码部分中),如果您可以将其放在SCRIPTLER脚本中(请参阅Jenkins Scriptler插件),那么您可以调用{{1如上所述,在上游作业的 BUILD部分(执行shell或Run Groovy脚本)中传递相同的参数(您在下游作业中传递的参数),由于复杂性,您希望在上游作业中添加相同的下游参数。注意:如果你不想调用Scriptler脚本,如果你正在处理TFS vs ProjectC vs someAutomationD或者当parameterX设置为true(你的调用),请参阅有关如何调用Scriptler脚本(在Build部分中)的条件运行插件有)。

它与CSchulz提到的几乎完全相同,但Scriptler脚本更好,因为您在一个地方更改代码/脚本(Scriptler脚本部分 - Jenkins主页上的左侧部分)然后使用/重用该脚本任何地方(即在参数中支持Groovy Scriptler脚本 - 或 - 在构建部分中),而不需要读取下游作业的参数值(甚至在调用下游之前有些hacky方式,时间有时会改变所有内容) - 或者用Jenkins API做一些疯狂的事情让它更复杂。

答案 1 :(得分:0)

正如我尝试过的那样,您无法使用“ Active Choice插件”来触发上游/下游作业。仅当您手动触发作业时,才会激活主动选择和被动参数。例如,如果您尝试从一个位桶中触发构建,则活动选择参数会获取该值,但活动值将显示为空。

但是您可以通过不同的方式来实现。 如果要手动(自己)触发第一项作业,请将downstram作业参数设置为字符串,以便可以直接读取这些值。 第二种选择是使用环境变量。主动选择不仅仅是条件选择参数。您可以编写Groovy脚本以将参数设置为环境变量。这可以通过EnvInject插件来实现。用groovy编写条件脚本,每个构建步骤都提供参数。

Groovy Script as an environment variable

Access environment variables in shell

使用环境变量将参数传递给下游作业 Passing parameters