Я испробовал как плагин lock & latches , так и плагин port allocator как способы достижения того, что вы пытаетесь сделать. Ни один из них не работал надежно для меня. Замки и защелки работали иногда, но я иногда получал работу. Использование распределителя портов в качестве хака будет работать, если у вас нет нескольких узлов jenkins, но издержки конфигурации довольно высоки. В конечном итоге я остановился на другом хаке, но он работает надежно и использует основные компоненты Jenkins (без плагинов):
- создать подчиненный узел, работающий в том же блоке, что и мастер (или нет, если у вас много блоков)
- дать этому рабу одного исполнителя (ключ)
- связать 2 (или n) задания, которые не должны выполняться вместе, с этим новым подчиненным узлом
- дополнительно может установить использование ведомого устройства на «только связанные задания», если оно испортит ваши другие задания, если они будут работать на новом ведомом устройстве
Поскольку у ведомого есть только один исполнитель, связанные с ним задания никогда не могут выполняться вместе.