在上游作业中添加的两个参数中只有一个在下游作业中起作用

时间:2019-05-09 17:45:06

标签: jenkins groovy

我有两个詹金斯工作。第一个包含Groovy代码,其中使用“执行系统Groovy脚本”来存储我为下游作业所需的几段数据。

使用“在其他项目上触发参数化的构建”,在构建后的操作中调用下游作业。在该下游作业的构建触发器中,我尝试包括以下两个选项:

“当前构建参数” “在同一节点上构建”

在父项目的常规代码中,我看到它使用println正确设置了两个参数。

下游作业已选中“此项目已参数化”,我已经为上游作业中设置的两个参数创建了字符串参数。

下游作业将调用一个批处理文件,该批处理文件会执行大量的后构建工作。

常规代码:

def pa = new ParametersAction([new StringParameterValue("SERVICE_VERSION", serviceversion)], ["SERVICE_VERSION"])
Thread.currentThread().executable.addAction(pa)

def pa2 = new ParametersAction([new StringParameterValue("PROJ_BUILD_NUMBER", projbuildnumber)], ["PROJ_BUILD_NUMBER"])
Thread.currentThread().executable.addAction(pa2)

我希望我能够在批处理文件中同时使用%SERVICE_VERSION%%PROJ_BUILD_NUMBER%,并且它们都将在上游作业中设置值。

在上游作业中,如果我println这两个值,我得到:

%SERVICE_VERSION% = 1.0.0
%PROJ_BUILD_NUMBER% = 225

但是,在下游作业中,仅%SERVICE_VERSION%可用。

ECHO SERVICE_VERSION=%SERVICE_VERSION%
SERVICE_VERSION=1.0.0

ECHO PROJ_BUILD_NUMBER=%PROJ_BUILD_NUMBER%
PROJ_BUILD_NUMBER=

奇怪的是,如果我交换两个addAction()调用的顺序,则它们都不可用。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我通过修改Trigger Parameterized Build以传递特定参数解决了自己的问题,现在它可以正常工作了。是的,我! Trigger Parameterized Build settings