Как получить последний вывод консоли задания jenkins с помощью python-jenkins? - PullRequest
3 голосов
/ 20 июня 2019

Я не могу извлечь вывод консоли jenkins данной работы, используя python-jenkins. Я должен извлечь полный консольный вывод данной сборки #.

Вот как выглядит мой jenkins url:
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

Ожидаемый результат - вывод консоли.

Что мне не хватает?

Пожалуйста, помогите мне извлечь консольный вывод из jenkins, используя python. Есть ли альтернативные способы или библиотеки для этого?

1 Ответ

0 голосов
/ 20 июня 2019

Хорошо. Я чувствую себя действительно глупо в 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...