2014-03-24 150 views
7

我的Jenkins版本中的参数之一是Extended Choice Parameter,它在从构建网页调用构建时作为逗号分隔值的选择提交。jenkins:使用URL传递多个“扩展选项参数”值

但是,我还需要使用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" 

构建开始罚款与价值blah3为EPC_LIST参数。

但是,如果我想用两个或多个值调用它,它只是传递一个空值给参数。

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

希望有人能帮助我。

谢谢!

+0

你试过引用它们吗?正如在'ECP_LIST =“blah1,blah2,blah3”'。然后,如果失败了,请尝试对报价进行urlen编码。 – Slav

+0

好的建议 - 我试过引用,但没有使用URL编码的引号。不幸的是没有工作: wget“$ {JENKINS_URL}/job/buildname/buildWithParameters?ECP_LIST =%22blah3%20blah4%22&token = token” – junebob

+0

我也试过%22blah3,blah4%22 – junebob

回答

1

包括单引号的URL工作:

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

同样,如果你想通过与卷曲你的詹金斯API在卷曲你可以运行:

curl -X POST 'http://api:[email protected]/job/BUILDNAME/buildWithParameters?parameter2=blah&parameter2=blahblah' 
+0

这对我来说没有什么不同,依然不起作用。 – onionjake

+0

我在 – junebob

+0

以下添加了一个解决方案sudo curl --insecure --user $ USER:$ PASSWORD \ -X POST“$ {JOB_URL}/buildWithParameters?&param1 = value&param2 = value&param3 = value&param4 = value” – OverrockSTAR

0

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

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) 
+0

即使使用网址编码,它仍然不会超过一个参数值。 – onionjake

2

我没解决它通过多次选择ECP_LIST

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

会导致:

ECP_LIST=blah1,blah2,blah3 

我希望你的作品。

+0

请注意,使用Post-build Actions,在其他项目上触发参数化构建,并从文件传递属性;你可以这样做: echo“ECP_LIST = blah1,blah2,blah3”> prop_file.txt – junebob

+0

这是答案,谢谢 –