Jenkins - 触发器/调用构建在其他项目上 - 发送多行字符串参数需要帮助

问题描述 投票:0回答:3

我有 2 个 Jenkins 工作:

  1. projectA - 将定期运行最新版本并更新文本文件以触发 yes。当触发器设置为YES时,会触发下游projectB,多种参数以Key=Value格式传递
  2. projectB - 有多个参数 - 包括布尔、字符串、扩展选择和多行参数。 projectB - 正常执行时的参数页面

这样当projectA触发projectB时,所有参数都已经传递成功了。对于多行参数,仅传递第一行值并丢弃所有后续行。

WaitTime=900
DBCheck=true
Snmpwalk=true
TcpPortScanner=false
CLI_DisplayOutput="show 1
show 2
show 3"

检查此触发执行的参数页面时,它仅显示单行文本框而不是多行文本框。

projectB - 由projectA触发的参数页面

附注

  1. 等待时间可能会有所不同。刚刚捕获了随机构建运行。
  2. 参数不是获取多行字符串,而是单行字符串

兄弟, 贾根

jenkins plugins parameters parameter-passing multiline
3个回答
0
投票

在行尾使用反斜杠

\

例如,在“预定义构建参数”部分中,您可以定义

PARAMETER_A = value-of-the-param-a
PARAMETER_B =  \
value-of-the-param-b

0
投票

虽然已经很晚了,但很多问题都可以解决。我想强调一下我在问题发生期间所做的事情。

正如所解释的,我使用了多行输入(在配置中)

enter image description here

以及下面列出的执行参数,带有多个显示命令(在运行期间)

enter image description here

在构建步骤(在配置中)期间,我使用另一个插件将此内容作为文件写入工作区中

enter image description here

我还确保内容成功传递并在执行时创建文件

enter image description here

现在我的设备可以一一读取内容并执行了。


0
投票

并不理想,但当行作为以

\n
\r
\r\n
分隔的单行传递时,可以正确处理多行参数,例如:

MY_MULTILINE_PARAMETER=foo=bar\nbar=foo

打印时给出以下内容:

foo=bar
bar=foo
© www.soinside.com 2019 - 2024. All rights reserved.