В Jenkins скриптовый конвейер получает Result от задания, которое не было напрямую запущено конвейером - PullRequest
0 голосов
/ 08 мая 2019

У нас есть задание Дженкинса (задание А), которое отправляет некоторые артефакты в хранилище git. Этот толчок вызывает другое задание Дженкинса (задание B), которое проверяет вновь выдвинутые артефакты.

Задание A отправляет сообщение о том, все ли в порядке или произошла ошибка. Но для того, чтобы информация для уведомления была завершена, заданию A необходимо хотя бы знать, было ли задание B успешным (наличие журнала было бы еще лучше).

Теперь я хочу узнать, есть ли возможность получить результат выполненного задания, даже если это задание не было вызвано заданием, которому нужна информация?

Также есть ли возможность заблокировать задание A во время выполнения задания B? Я обнаружил плагин Block Build, но он блокирует работу только с момента запуска до тех пор, пока указанные работы не будут завершены.

Ответы [ 2 ]

0 голосов
/ 08 мая 2019

Это очень странная настройка.Похоже, это должны быть этапы, а не отдельные работы.Тем не менее, можно получить статус любой работы с помощью jenkins json API

jenkins_url/job/${job_name}/lastBuild/api/json?tree=result,timestamp,estimatedDuration

Интересным будет вопрос - как узнать, какой номер другой работы нужно проверить, если они запускаются независимо?

0 голосов
/ 08 мая 2019

Вы пытались использовать что-то подобное, чтобы получить результаты сборки?Использовали его раньше для цепочки сборок здесь

node {
try {
    // do something that fails
    sh "exit 1"
    currentBuild.result = 'SUCCESS'
} catch (Exception err) {
    currentBuild.result = 'FAILURE'
}
echo "RESULT: ${currentBuild.result}"

}

...