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

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

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

вот пример вывода JSON url:

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"}]}

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

1 ответов


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

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

возвращает action XML-узел, который можно запросить через 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

ссылки