我无法使用 python-jenkins 提取给定作业的 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 中提取控制台输出。 有没有其他方法或库可以实现它?
最佳答案
好的。凌晨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)
关于python-2.7 - 如何使用 python-jenkins 检索 jenkins 作业的最后一个控制台输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56679222/