我无法使用python-jenkins提取给定作业的jenkins控制台输出。我必须提取给定版本号的完整控制台输出。
这是我的詹金斯网址的样子:
http://jenkins.abc.xyz.io:8080/job/myapp-build/46/consoleFull
并且它具有有效的输出。
按照https://python-jenkins.readthedocs.io/en/latest/api.html#jenkins.Jenkins.get_build_console_output
get_build_console_output(name, number)
Get build console text.
Parameters:
name – Job name, str
number – Build number, int
Returns:
Build console output, str
我尝试了
import jenkins
server = jenkins.Jenkins('http://jenkins.abc.xyz.io:8080', username='foo', password='foo!')
jenkins_url = "http://jenkins.abc.xyz.io:8080"
user = server.get_whoami()
version = server.get_version()
print('Hello %s from Jenkins %s' % (user['fullName'], version))
#
name='/myapp-build'
number=46
print server.get_build_console_output(name, number)
但是它中止了说话
Traceback (most recent call last):
File "test_jenkins.py", line 20, in <module>
print server.get_build_console_output(name, number)
File "/home/myapp/jenkins_py/env/jenkins/local/lib/python2.7/site-packages/jenkins/__init__.py", line 1630, in get_build_console_output
% (name, number))
jenkins.JenkinsException: job[/myapp-build] number[46] does not exist
预期结果将是控制台输出。
我想念什么?
请帮助我使用python从jenkins中提取控制台输出。 有其他替代方法或库可以完成它吗?
答案 0 :(得分:0)
好的。我在凌晨2:18感到非常愚蠢。 该脚本有效。
只需删除作业名称前面的前一个“ /”即可。
现在,我可以检索完整的输出了。
server = jenkins.Jenkins('http://jenkins.abc.xyz.io:8080', username='foo', password='foo!')
jenkins_url = "http://jenkins.abc.xyz.io:8080"
user = server.get_whoami()
version = server.get_version()
print('Hello %s from Jenkins %s' % (user['fullName'], version))
#
name='myapp-build' #without the /
number=46
print server.get_build_console_output(name, number)