我有一个 Jenkins 作业,其名称Test2可以从 Jenkins Web 界面构建。现在我想使用 JenkinsAPI 触发该构建。我只能找到示例代码来做其他事情,但API 文档提到了这个Build类。所以我想我会尝试实例化它,然后等待它完成(希望这也能触发实际的构建)但我比这更早得到相当神秘的错误。我究竟做错了什么?
import jenkinsapi
b = jenkinsapi.build.Build("http://localhost:8080", 1, "test2")
b.block_until_complete()
Run Code Online (Sandbox Code Playgroud)
给我:
Traceback (most recent call last):
File "/Users/jonathan/Genetta/Eclipse_Django_workspace/FOO/foo/TriggerBuild.py", line 2, in <module>
b = jenkinsapi.build.Build("http://localhost:8080", 1, "test2")
File "/Users/jonathan/anaconda/lib/python2.7/site-packages/jenkinsapi/build.py", line 58, in __init__
JenkinsBase.__init__(self, url)
File "/Users/jonathan/anaconda/lib/python2.7/site-packages/jenkinsapi/jenkinsbase.py", line 35, in __init__
self.poll()
File "/Users/jonathan/anaconda/lib/python2.7/site-packages/jenkinsapi/jenkinsbase.py", line 59, in poll
data = self._poll(tree=tree)
File "/Users/jonathan/anaconda/lib/python2.7/site-packages/jenkinsapi/build.py", line 65, in _poll
return self.get_data(url, params={'depth': self.depth}, tree=tree)
File "/Users/jonathan/anaconda/lib/python2.7/site-packages/jenkinsapi/jenkinsbase.py", line 72, in get_data
requester = self.get_jenkins_obj().requester
File "/Users/jonathan/anaconda/lib/python2.7/site-packages/jenkinsapi/build.py", line 371, in get_jenkins_obj
return self.job.get_jenkins_obj()
AttributeError: 'str' object has no attribute 'get_jenkins_obj'
Run Code Online (Sandbox Code Playgroud)
我不清楚为什么您的示例不起作用,但我发现 JenkinsAPI 文档总体上令人困惑,所以也许我只是不明白。
我发现要直接获取特定构建,您可以使用api 包中的get_build方法。参数的顺序不同:
import jenkinsapi
b = jenkinsapi.api.get_build("http://localhost:8080", "Test 1", 1)
Run Code Online (Sandbox Code Playgroud)
这对于通过其他方式开始的现有构建很好。但听起来您实际上想要触发构建。在这种情况下,通过 Jenkins 实例获取作业并使用以下invoke方法:
import jenkinsapi
jenkins = jenkinsapi.jenkins.Jenkins("http://192.168.99.100:8080")
job = jenkins["Test 1"]
job.invoke(block=True)
Run Code Online (Sandbox Code Playgroud)
在我看来,当可以通过massiou 的回答所描述的请求包访问普通的 Jenkins REST API 时,使用记录混乱的接口包几乎没有什么好处(为什么有多种方法可以获得构建?)。
| 归档时间: |
|
| 查看次数: |
5035 次 |
| 最近记录: |