如何使用python-jenkins检索jenkins作业的最后控制台输出?

时间:2019-06-20 04:58:21

标签: python-2.7 jenkins jenkins-pipeline

我无法使用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中提取控制台输出。 有其他替代方法或库可以完成它吗?

1 个答案:

答案 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)