Дженкинс Groovy, Дженкинс DSL Script - PullRequest
0 голосов
/ 10 июля 2019

Как изменить статус задания jenkins вручную в конвейере?

Пример: -

У меня есть 7 вольных заданий (A, B, C, D, E, F, G) вКонвейер, работа Начальная работа, после A у нас есть три параллельных тестовых задания (B, C, D).Задание E - это задание генерации отчета, здесь нам нужно, чтобы взаимодействие с пользователем для Pipeline продолжалось или нет?

Условия на задании E: 1) Если задание E успешно, Pipeline продолжит выпуск 2), еслиЗадание E не выполнено, трубопровод должен быть остановлен.3) если задание E нестабильно, то здесь нам нужно реализовать взаимодействие с пользователем.При взаимодействии с пользователем пользователю необходимо изменить статус задания E UNSTABLE на успешное или неудачное.

Например: - Если задание E НЕСТАБИЛЬНО, во взаимодействии с пользователем.пользователь нажимает продолжить, задание E изменяется нестабильно на УСПЕХ, пользователь нажимает НЕТ, задание E меняется нестабильно на отказ.

1 Ответ

0 голосов
/ 10 июля 2019

Я бы не рекомендовал пытаться изменить статус билда. Ваш вариант использования идеально подходит для трубопроводов. В идеале я бы порекомендовал избавиться от работы по вольному стилю и разработать правильный конвейер.

Если вы не можете, вы все равно можете организовать работу вольным стилем из заводных конвейеров.

Для запуска задания из конвейера:

build job: jobFullname, parameters: listOfParameters

См. Дополнительные параметры .

Чтобы отобразить сообщение, ожидающее решения:

input "Continue or abort pipeline ?"

См. Дополнительные параметры .

Если вы все еще хотите изменить статус сборки, сначала вам нужно найти работу:

Job job = (Job) Jenkins.instance.getItemByFullName(jobFullname)

Затем найдите прогон, который вы хотите изменить:

Run run = job.getBuildByNumber(buildNumber)

или более удобно, получить полный список и зациклить его, чтобы найти тот, который вы хотите:

RunList<RunT> runs = job.getBuilds()

Затем, как только вы выполните пробежку, вы ищете:

run.setResult(Result.SUCCESS)
run.setResult(Result.FAILURE)
...