Jenkins:在URL触发器中发送多个参数

时间:2018-12-13 21:55:28

标签: jenkins

我有一个詹金斯(Jenkins)工作,负责检查文件版本...

该项目已参数化:

Multi-line String Parameter = server

Powershell命令

$servers = ($env:servers).Split([Environment]::NewLine, [StringSplitOptions]::RemoveEmptyEntries)
foreach ($server in $servers) {ls "\\$server\c$\update.dll" | % versioninfo}

我使用URL触发它:

http://MY_JENKINS_SERVER/job/FILE_VERSION/buildWithParameters?servers=10.10.10.1

它有效,我得到:

 ProductVersion   FileVersion      FileName                            
 --------------   -----------      -------- 
 11.1.1.16        11.1.1.16        \\10.10.10.1\c$\update.dll

但是我想在触发URL中发送多个IP,例如

10.10.10.1

10.10.10.2

10.10.10.7

所以我输出类似:

 ProductVersion   FileVersion      FileName                            
 --------------   -----------      -------- 
 11.1.1.16        11.1.1.16        \\10.10.10.1\c$\update.dll
 11.1.1.15        11.1.1.15        \\10.10.10.2\c$\update.dll
 11.1.1.15        11.1.1.15        \\10.10.10.7\c$\update.dll

有人知道吗?

1 个答案:

答案 0 :(得分:1)

由于使用的是“多行字符串参数”,因此必须提供所有必需的值,并用换行符分隔。通常,\ n被视为换行符,但是,您将不得不“转义”它。将此%0A用作换行符。

因此,您的POST URL应该是这样的:

curl -v -X POST <jenkins_url>/<job_name>/buildWithParameters?server=11.1.1.16%0A11.1.1.15%0A11.1.1.15

有关转义字符的更多参考:https://www.w3schools.com/tags/ref_urlencode.asp