Jenkins参数化构建插件没有传递给孙子作业

时间:2015-08-06 02:36:29

标签: jenkins jenkins-plugins

我使用参数化构建插件来触发一系列4个作业。作业1设置为"在其他项目上触发参数化构建"。它调用作业B并从属性文件中设置一个参数,并将其中一个设置为预定义。

作业B将两个输入参数定义为字符串参数,作业找到两个参数并且运行正常。作业B设置为"在其他项目"上触发参数化构建,并调用作业C.作业C被参数化以接收相同的两个参数。

但是,Job C永远不会获得任何参数。在作业B中,我尝试传递当前构建参数,我尝试设置预定义参数(类型为var1 = $ {var1},甚至设置myTestVar = hello),但在Job中找不到任何参数下进行。

Job A是maven build,Job B是自由式,C是Maven,D是自由式(如果我到达那里)。

我使用的是Jenkins 1.623和参数化构建插件2.27。

我在这里不知所措。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

好吧,我建议您执行以下步骤来解决此问题:

  1. 在作业C中先前完成的构建中,检查Parameters以查看作业B是否传入了参数。如果那些参数不存在,那么您可能需要检查作业中的参数化构建触发器配置B看看它是否配置正确。
  2. 尝试在下游作业(例如作业C)中使用echo在shell脚本中打印参数,以查看是否可以在控制台日志中看到该参数。例如,echo $foo
  3. 如果您使用Groovy脚本,请确保使用System.getenv()来获取环境变量。例如,def foo = System.getenv()["foo"]