繁体   English   中英

Jenkins - 我如何将参数从上游传递到下游

[英]Jenkins - How can i pass parameters from the Upstream to Downstream

我有3个构建:A - 是控制流的主构建B- Anoter构建C-将在BI想要向A添加String参数后执行,因此用户将手动输入一些String,我不知道如何我可以将此参数路由到B.让我们说这是我的构建流程:

build(“B”)build(“C”)我不知道如何将参数传递给B,如果我从构建流程或B构建配置中执行此操作,我该怎么做。

先谢谢Alex

像这样的东西:

build("B", B_parameter: params["A_parameter"])<br>
build("C")

https://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Plugin

一种方法是使用参数化触发器插件: https//wiki.jenkins-ci.org/display/JENKINS/Parameterized+Trigger+Plugin

这允许您使用但不限于:

* a set of predefined properties 
* properties from a properties file read from the workspace of the triggering build
* the parameters of the current build

使用Build A,B和C,您可以将th3m设置为参数化构建(即要求参数值)。 这是一个靠近作业配置页面开头的设置。 例如,要获取一个名为MY_ID的参数。 现在可以在构建A中以$ MY_ID访问它。

现在,当您构建A时,它会提示MY_ID。 然后在作业A中添加一个构建步骤以触发带参数的“B”,并将其传递给构建A的所有参数。现在构建B还将具有在运行构建A时设置的参数$ MY_ID。

参数化触发插件是您正在寻找的。 有关如何将参数从主构建传递到子构建的详细信息,请在链接中检查我的答案。

Wooooow,所以经过几个小时的播放“这个方程式中缺少哪个插件?”后,事实证明这些答案都没有起作用,因为jenkins更改称为SECURITY-170

如果您按照此答案中的步骤操作并且未转发参数,请转至此其他Stack Overflow应答 ,其中提供了有关问题的详细信息。 如果你感觉太懒,只想验证SECURITY-170是问题的症结所在,你可以试试这个临时解决方案,因为它在重启后不会持续存在:

  1. 管理Jenkins - >管理节点 - >选择您的“主人”,无论其名称如何
  2. 选择脚本控制台
  3. 将其粘贴并点击“ Run按钮: System.setProperty("hudson.model.ParametersAction.keepUndefinedParameters", "true")
  4. 重试不转发参数的构建

如果这对您有用,您可以查看我在另一个问题上汇总的答案 ,但我建议您在尝试之前先阅读问题和答案的背景。

这是我的管道(Master Build A)脚本,用于将参数传递给子作业(Child Build B)

build job: 'svn test', parameters: [string(name: 'srcpath', value: params["mainpath"]), string(name: 'revision', value: params["mainrevision"])]

我配置
- mainpath和mainrevision作为管道作业参数,
- srcpath和revision作为子作业参数

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM