Как сохранить текущее выполнение задания Jenkins до завершения задания зависимости в действии после сборки - PullRequest
0 голосов
/ 31 января 2019

У меня есть сценарий для запуска другой сборки в POST BUILD ACTION, и для ее завершения потребуется 1 м, и я просто хочу сделать текущую сборку, чтобы дождаться завершения задания зависимости (продолжительность 1 м) и обновить состояние (ЗАВЕРШЕНО), FAILED, UNSTABLE).

Это похоже на то, что у меня есть имя задания с именем A и B. B - это зависимость, которую необходимо запустить в POST BUILD ACTION в JOB A. Как только JOB B завершил выполнение (длительность 1M)) Я хочу опубликовать статус задания JOB A. Задание A необходимо удерживать до завершения выполнения задания J в действии POST BUILD.

Как мне этого добиться?Любые отведения ...

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Это довольно легко, если вы не ограничены в этом, чтобы делать это только в разделе Post Build (например, когда вам нужно запускать другую сборку, только если основная сборка стабильна, но я думаю, что с 1minработа тебя просто не волнует)

Вам просто нужно установить плагин Parameterized Trigger , и он позволит вам добавить Trigger/call builds on other projects раздел в ваш Build раздел (не в Post Build ).Вам также необходимо включить опцию Block until the triggered projects finish their builds, чтобы дождаться завершения задания B и проверить состояние задания B: enter image description here

0 голосов
/ 01 февраля 2019

Похоже на сложную проблему, которую нужно решить, так как POST BUILD означает, что задание B будет запускаться ПОСЛЕ того, как задание A будет завершено.

Можно попробовать запустить параллельные задания A и B, а для задания B вы можете добавить шаг сборки к Execute shell, например, sleep 5m, так что задание B будет спать 5минут в начале, а затем он запустит ту работу, которую вы хотите.В задании A вы можете иметь сценарий оболочки, который в цикле будет читать вывод консоли задания B, и цикл завершится после того, как консоль задания B выдаст вывод Finished:, а затем вы можете продолжить работу с логикой, основанной навыход работы.

Для чтения выходных данных консоли вы можете сделать что-то подобное в цикле (и grep для ключевого слова Finished:):

curl -u ${USERNAME}:${TOKEN} {JENKINS_URL}/job/{JOB_NAME}/lastBuild/consoleText | grep {what you need}

...