1

我正在尝试使用 Python jenkinsapi 包调用作业。我可以使用 jop.py 启动构建没有问题,但是当尝试将字符串参数传递给 Jenkins 服务器时,参数不会被拾取,而是使用 Jenkins 服务器上配置的默认值。

这是我使用 job.py 调用的一个简单示例:

my_job.invoke(securitytoken = 'mytoken', params = {'param1':'value1', 'param2':
'value2'})

同样,上面的代码在 Jenkins 服务器上成功启动了构建,但是服务器上的 Job 没有获取任何参数值,而是使用服务器上 Job config 中的默认值。

有人可以告诉我上述用法有什么问题吗?还有其他需要的参数吗?有人有使用 jenkinsapi 调用参数化构建的示例吗?

这是 jenkinsapi 0.1.16

4

1 回答 1

0

在深入研究这个之后,事实证明 URL 没有正确构建。通过使用 Python 2.6.4 更改版本 0.1.16 中 jenkinsbase.py 中的第 91 行,我终于能够让构建参数正确传递:

  • 如果参数:stream = fn_urlopen(url, urllib.urlencode(params))
  • 如果参数:stream = fn_urlopen(url + '?' + urllib.urlencode(params))

在 jenkinsbase.py 中更改此行后,我原始问题中的示例将构建参数正确传递到作业中。

于 2013-06-22T23:26:05.983 回答