我的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个或更多值调用它,它只会将空值传递给参数。
我尝试使用各种东西来分隔值,例如空格,编码逗号,分号。我还没有在这里或谷歌找到答案。
答案 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¶meter2=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¶2=value'