Я только что столкнулся с этой проблемой с Hudson v2.2.1 (да, я знаю, что это древняя версия). Я не уверен, что спровоцировало неконтролируемые сборки, поскольку никакие изменения конфигурации, по-видимому, не совпадают с началом сбегания. Однако я нашел (дополнительный) обходной путь.
На странице конфигурации задания есть опция (флажок) для «Ограничить, где этот проект может быть запущен», с двумя (радиокнопками) вариантами выбора средств ограничения: «Узел и меню метки» или « Расширенные выражения узлов и меток ", одно из которых должно быть выбрано.
Когда выбран второй из этих параметров «Расширенные выражения узла и метки», появляется текстовое поле произвольной формы, позволяющее ввести логическое выражение, объединяющее термины из
- набор имен подчиненных узлов ("BUILDDEV3" в ответе @ Campey), union
- набор всех значений меток подчиненных («основные строители» в ответе @ Campey).
Например, major-builders && !BUILDDEV3
.
Когда выбран первый из этих параметров, «Узел и меню меток», появляется список выбора, который позволяет выбрать одно значение из списка, который содержит термины из:
- набор имен подчиненных узлов, union
- список всех значений меток подчиненных, объединение
- набор всех выражений, определенных в настоящее время в любом задании из механизма «Расширенные выражения узла и метки».
Обратите внимание, что набор имен подчиненных узлов по своей природе обрабатывается как метки подчиненных. Предложение @ Campey состоит в том, чтобы не связываться с механизмом выбора, а явно добавить имя подчиненного узла в список меток для каждого подчиненного устройства. Это будет работать, но имеет потенциальные побочные эффекты, скажем, если вы переименуете узел. Я не пробовал, но это может привести к появлению дубликатов в списке условий выбора для селектора отправки. Я предпочитаю избегать избыточного сбора информации.
Мой обходной путь - никогда не выбирать неявные имена подчиненных узлов, а использовать только метки или выражения, содержащие только метки в механизме выбора, независимо от того, какой из них вы выбрали. Это никогда не будет лишним.
Например, чтобы выразить пример, приведенный ранее: major-builders && !BUILDDEV3
, где «major-builders» - это метка, а «BUILDDEV3» - это имя узла, необходимо добавить уникальную метку узла к узлу «BUILDDEV3». например «НИЧЕГО», а затем используйте выражение major-builders && !NOTHERE
.