Как заставить задание ждать, пока dependencyJob завершит sh, только если оно было запущено вместе с текущим заданием? - PullRequest
0 голосов
/ 17 июня 2020

У меня есть два конвейерных задания 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 для этого геррита уже выполнено.

...