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

时间:2014-08-14 14:52:01

标签: build jenkins build-process

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

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

提前致谢 亚历

5 个答案:

答案 0 :(得分:3)

这样的事情:

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

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

答案 1 :(得分:2)

一种方法是使用参数化触发器插件: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中添加构建步骤以触发&#34; B&#34;使用参数,并将它传递给构建A的所有参数。现在构建B也将具有在运行构建A时设置的参数$ MY_ID。

答案 2 :(得分:2)

Parameterized Trigger Plugin正是您要找的。有关如何将参数从主构建传递到子构建的详细信息,请在this链接中查看我的答案。

答案 3 :(得分:1)

哇哇,所以经过几个小时的游戏&#34;这个方程式中缺少哪个插件?&#34;,结果发现这些答案都没有起作用,因为jenkins更改名为SECURITY-170

如果您按照此回答中的步骤操作并且未转发参数,请转到此other Stack Overflow answer,其中提供了有关问题的详细信息。如果您感觉太懒,只想确认SECURITY-170是问题的症结所在,您可以尝试使用 临时 解决方案,因为它不会重启后坚持:

  1. 管理Jenkins - &gt;管理节点 - &gt;选择你的&#34; Master&#34;,无论它名为
  2. 选择脚本控制台
  3. 将其粘贴并点击Run按钮:System.setProperty("hudson.model.ParametersAction.keepUndefinedParameters", "true")
  4. 重试不转发参数的构建
  5. 如果这对您有用,您可以查看this answer我收集了另一个问题,但我建议您在尝试之前先阅读问题和我的答案背景。

答案 4 :(得分:0)

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

   $where = ' WHERE '.$where;

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