У меня есть два конвейерных задания Jenkins (скажем, job_1 и job_2), job_1 настроен на запуск, когда Developer-Verified +1
публикуется на gerrit, аналогично «Code-Review +2» для запуска job_2
.
Вот требование:
req-1) Developer-Verified +1 добавлено: trigger job_1
req-2) code- обзор +2 добавлен: trigger job_2
req-3) Developer-Verified +1 и Code-Review +2 сложены вместе: job_2 to wait for job_1 to finish then start the build.
Есть ли способ добиться этого с помощью конвейера Дженкинса?
в настоящее время у меня есть эта конфигурация триггера на job_1
, и она работает, job_1 прямолинейный, он всегда должен запускаться на Developer-Verified +1, так просто:
triggers {
gerrit(
serverName: 'server-name',
gerritProjects: [[<list project and branch>]],
triggerOnEvents: [
commentAdded(commentAddedTriggerApprovalValue: '+1', verdictCategory: 'Developer-Verified')
]
)
}
На job_2 я добавил dependencyJobsNames: "job_1"
, как показано ниже, когда оба Developer-Verified +1 и Code-Review +2 сложены вместе (как в req-3, указанном выше) job_2 ждет job_1, как ожидалось - хорошо.
Но когда добавляется только Code-Review +2
(как в req-2 выше), job-2 просто ждет вечно с сообщением:
(pending—Waiting for all projects to finish gerrit-triggering to make sure no dependencies need to build first.)
, is t здесь способ обойти это?
triggers {
gerrit(
serverName: 'server-name',
gerritProjects: [[<list project and branch>]],
dependencyJobsNames: "job_1",
triggerOnEvents: [
commentAdded(commentAddedTriggerApprovalValue: '+2', verdictCategory: 'Code-Review')
]
)
}
ОБНОВЛЕНИЕ: когда Code-Review +2 добавлен в триггер job_2 (как в req-2 выше), это означает, что Developer-Verified +1 уже добавлен и задание-1 для этого геррита уже выполнено.