В Jenkins, если следующая триггерная сборка находится в состоянии ожидания, то как отменить запуск сборки и запустить следующую ожидающую сборку?

В Jenkins, если одна сборка в настоящее время запущена, а следующая находится в ожидающем состоянии, то что я должен делать, чтобы запуск был прерван, а следующий в ожидании должен запускаться и т.д.

Я должен сделать это за несколько проектов, и у каждого проекта есть несколько заданий, я попытался сохранить build_number как переменную env в одном текстовом файле (build_number.txt) и принять это число, чтобы прервать предыдущую запущенную сборку, но создав файл build_number.txt для каждая работа не выглядит эффективной, а затем мне нужно создать много файлов build_number для каждого задания для каждого проекта.

Может кто-нибудь, пожалуйста, предложите мне более подходящий подход

благодаря

1 ответ

Исходя из комментариев, если отправка слишком большого количества сообщений электронной почты является актуальной проблемой, вы можете использовать опрос SCM для опроса один раз в 15 минут или около того или даже указать тихое время для работы. Это обеспечит сборку сборки за 15 минут. Перед тем, как они совершают, пользователи должны локально протестировать. Но если сам Дженкинс используется для проверки коммитов, я не вижу ничего плохого в отправке электронной почты, если сборка завершилась неудачей. В конце концов, они должны знать, что, несмотря на то, что они исправили его в более позднем обновлении намеренно или непреднамеренно.

Но если вы все еще хотите прервать запущенную работу, если есть обновления, вы можете попробовать следующее. Позволяет выполнить задание, которое нужно прервать, как JOB A

  1. Создайте другое задание, которое прослушивает обновления, такие же, как и задания, которые необходимо прервать
  2. Добавьте шаг сборки для выполнения строчного скрипта
  3. В скрипте groovy используйте Jenkins API для проверки работы JOB A. Если да, снова используйте API, чтобы прервать работу.

API Jenkins доступны здесь

licensed under cc by-sa 3.0 with attribution.