Как найти и запросить конкретную сборку в Jenkins с помощью Python Jenkins API

У нас есть задание Jenkins, которое запускает сборки с использованием определенных параметров. Для меня важны два из этих параметров: машина, на которой развертывается сборка, и номер версии развертываемого пакета.

https://jenkinsurl/job/folder_level1/job/folder_level2/job/folder_level3/job_id/

Вот пример вывода URL-адреса в формате json:

https://jenkinsurl/job/folder_level1/job/folder_level2/job/folder_level3/job_id/api/json

{"actions":[{"parameters":[{"name":"lab_name","value":"labA"},{"name":"version_no","value":"1.1"}]}

Используя Jenkins REST API или оболочку Python Jenkins, как мне искать задание, если я знаю folder_level1 и хочу сопоставить имя лаборатории с заданием на folder_level3, чтобы, наконец, получить версию с этого URL-адреса?


person shanwar    schedule 22.07.2016    source источник


Ответы (1)


Используйте формат / api / xml:

https://jenkinsurl/job/folder_level1/api/xml

который возвращает XML-узел action, который можно запросить через XPath:

Возьмите оттуда совпадающее имя, чтобы найти нужные данные:

  • builtOn - машина, на которой развертывается сборка
  • number - номер версии развернутого пакета

Использование XPath для каждого вместе с узлом-оболочкой для группировки, например, для builtOn:

https://jenkinsurl/job/folder_level1/api/xml?depth=3&xpath=//fullDisplayName[contains(text(),'foo')]/following-sibling::builtOn&wrapper=builtOn_results

и еще один для версии:

https://jenkinsurl/job/folder_level1/api/xml?depth=3&xpath=//fullDisplayName[contains(text(),'foo')]/following-sibling::number&wrapper=version_results

Ссылки

person Paul Sweatte    schedule 13.10.2016
comment
Решил, используя версию вашего решения, но не забыл опубликовать ответ раньше. Спасибо! - person shanwar; 13.10.2016