jenkins:传递多个"扩展选择参数"使用URL的值

时间:2014-03-24 10:54:44

标签: jenkins

我的Jenkins版本中的一个参数是Extended Choice Parameter,在从构建网页调用构建时,它会以逗号分隔值的形式提交。

但是,我还需要使用wget + URL来调用构建。

所以,格式为:

wget "${JENKINS_URL}/job/buildname/buildWithParameters?ECP_LIST=blah1&token=token"

说我的扩展选择参数ECP_LIST有可能的值:blah1,blah2,blah3,blah4。

如果我调用,例如:

wget "${JENKINS_URL}/job/buildname/buildWithParameters?ECP_LIST=blah3&token=token"

对于EPC_LIST参数,构建开始正常,值为blah3。

但是,如果我希望使用2个或更多值调用它,它只会将空值传递给参数。

我尝试使用各种东西来分隔值,例如空格,编码逗号,分号。我还没有在这里或谷歌找到答案。

4 个答案:

答案 0 :(得分:6)

我确实多次选择ECP_LIST来解决这个问题:

wget "${JENKINS_URL}/job/buildname/buildWithParameters?ECP_LIST=blah1&ECP_LIST=blah2&ECP_LIST=blah3&token=token"

将导致:

ECP_LIST=blah1,blah2,blah3

我希望这适合你。

答案 1 :(得分:2)

在单引号中包含URL:

wget '${JENKINS_URL}/job/buildname/buildWithParameters?ECP_LIST=blah3&token=token'

同样,如果你想通过curl运行Jenkins API卷曲,你可以运行:

curl -X POST 'http://api:xxxxxxxxxxxxxxxxxxxxxxx@jenkins.YOURSERVER.com/job/BUILDNAME/buildWithParameters?parameter2=blah&parameter2=blahblah'

答案 2 :(得分:0)

如果您的参数包含特殊字符,则需要在将URL传递给wget之前对其进行编码。我在python中这样做。我用curl。

url_params = {'param1' : param_value1, 'param2' : param_value2}
params_encoded = urllib.urlencode(url_params)
params = ['curl.exe', '-v', '-X', 'POST', '--show-error', '%s?%s' % (JobUrl), params_encoded]
subprocess.check_call(params)

答案 3 :(得分:0)

这对我有用!

curl -X POST -u "username:password" '${JENKINS_URL}/job/buildnamebuildWithParameters?para1=value&para2=value'