В наших шагах в направлении непрерывной интеграции, мы разделили работу сборки на две части:Дженкинс - Подождите два исполнителей будут доступны
- быстрого запуск первой необходимости
- Медленнее тяжелые задачи
Цели должен всегда иметь первый проход через менее чем 10 минут и только содержит сборку, модульный тест и развертывание в артефакт-репозиторий. Второй может также занимать часы.
В настоящее время у нас есть один мастер, который обрабатывает все, не рабы. Мастер имеет двух исполнителей. Это невозможно изменить.
Что я хочу сделать, так это заставить тяжелого ждать, пока два слота будут открыты, чтобы гарантировать, что для выполнения быстрых задач всегда есть один исполнитель.
Heavy может работать:
FastJob: -------xxxxxxxx---------xxxxx-------xxxxx------xxxxxxx-
LongJob: ---xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-----------------
Heavy должен ждать:
FastJob: --xxxxxx--xxxxxxxx---------xxxxx-------xxxxx-----------
LongJob: ---wwwwwwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-----------
--- = nothing
xxx = executing build
www = waiting
Я уже посмотрел на Heavy Job Plugin, однако это не решает эту проблему, поскольку впоследствии блокирует обоих исполнителей. Тяжелая работа должна ждать, пока два исполнителя не будут свободны, а затем заблокируют только один.
см также follow up question о резервировании х% от исполнителей.
Спасибо! У вас также есть представление о следующем вопросе? http://stackoverflow.com/questions/31935598/jenkins-job-may-only-run-if-more-than-one-executor-is-available – michaelbahr