我有一个Jenkins作业,它触发了一个远程作业。这两个作业都有一个多行字符串作为参数。我无法将该参数传递给远程作业。只有输入字符串的第一行被传递给远程作业。
是否无法使用多行字符串触发远程作业?
def parameters = 'ip_range='
params.ip_range.readLines().each{
parameters = parameters + "${it}" + "\n"
}
parameters = parameters + "\n"+'remote_branch='+env.BRANCH_NAME
还尝试了定义参数= 'ip_range=' +参数.ip_range +“\n”+'远程分支='+环境.BRANCH_NAME
在这两种情况下,只有第一个值作为参数传递给远程作业。
两种方法中jenkins作业的控制台输出
- 参数:[IP_范围= 1.2.4.5/20,1.56.23.12/32,远程分支=21.4.0/INSURECI-203156]
编辑:远程触发
triggerRemoteJob (
abortTriggeredJob: true,
enhancedLogging: true,
job: "some-remote-url/job/ip-range-test/job/${remoteTriggerBranchName}",
parameters: parameters,
remoteJenkinsName: 'Openshift',
useCrumbCache: true,
useJobInfoCache: true,
maxConn: 5
);
2条答案
按热度按时间bvpmtnay1#
因为参数化的远程触发器插件使用
'\n'
作为参数的分隔符,所以它不能正常工作。一个可能的解决方法是创建一个扩展到新行字符的令牌宏。令牌宏扩展是在参数在
'\n'
上拆分后完成的。flvlnr442#
我在原来的仓库上打开了两个PR来改进参数处理,它们已经被接受了。
希望它能很快发布(版本3.1.6.1),发布完成后,您可以在parameters字段中传递Map,将任何内容作为值,包括多行字符串。
它看起来像:
请参阅release page和corresponding JIRA issue。