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

ao218c7q  于 2023-06-28  发布在  Jenkins
关注(0)|答案(5)|浏览(160)

我的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。
但是,如果我想用两个或更多的值调用它,它只会向参数传递一个空值。
我试过用不同的东西来分隔值,比如空格、逗号、分号。我在这里或谷歌上都没有找到答案。

svmlkihl

svmlkihl1#

在单引号中包含URL的工作:

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

类似地,如果你想通过你的Jenkins API用curl运行一个curl,你可以运行:

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

mwyxok5s2#

如果你的参数包含特殊的字符,我认为你需要在传递给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)
wxclj1h5

wxclj1h53#

这对我有用!

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

dohp0rv54#

curl似乎不喜欢多个'&'分隔的参数。使用curl -X POST '${JENKINS_URL}/job/buildWithParameters' -F param1=value1 -F param2=value2

j9per5c4

j9per5c45#

我通过多次选择ECP_LIST解决了这个问题:

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

将导致:

ECP_LIST=blah1,blah2,blah3

希望你能接受。

相关问题