Как получить последнюю хорошую сборку с глубиной 2 с помощью Python JenkinsAPI - PullRequest
0 голосов
/ 14 марта 2019

Я пытаюсь получить данные сборки для конкретной сборки с глубиной 2, но по умолчанию всегда 1

J = Jenkins(host,user,password)
job = J.get_job(job_name)
build_number = job.get_last_good_build()

Это не упоминается в документации, только как создать объект сборки с глубиной 2.

Как мне получить его с глубиной 2?

Ответы [ 3 ]

0 голосов
/ 14 марта 2019

Просто используйте косую черту / для разделения вложенных заданий.Он будет работать для каталогов и плагинов организации, таких как Bitbucket Team Project.

job = J.get_job("{}/{}".format(organization, job_name))
0 голосов
/ 02 апреля 2019

В последней версии Jenkins API для Python есть метод get_job_info. Имеет глубину входного аргумента.

Пользователь Свен Крюгер

0 голосов
/ 14 марта 2019

Я не думаю, что API имеет его по умолчанию.Лучшее, что я могу придумать, - это получить список всех заданий и запросить каждое из них на предмет успешности. Если ваша работа часто терпит неудачу, вы можете начать с last_good_build и продолжить свой путь /

Я не знаюЯ хорошо знаю Python, но я написал очень плохой скрипт в GO, чтобы получить все успешные сборки, вам просто нужно добавить логику, чтобы остановиться на глубине 2:

Вы должны сделать что-то вроде:

    builds, err := jenkins.GetAllBuildIds(jobName)
    var count int64
    if err != nil {
        panic(err)
    }
    for _, build := range builds {
        buildID := build.Number
        data, err := jenkins.GetBuild(jobName, buildID)
        if err != nil {
            panic(err)
        }

        if "SUCCESS" == data.GetResult() {
            <LOGIC>
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...