Только один способ делать вещи, другие существуют.
Рабочие пространства фактически не используются совместно при распределении по нескольким машинам, поскольку они существуют в виде каталогов на каждой из нескольких машин. Чтобы решить вопрос координации элементов, любой элемент, который необходимо распределить из одного рабочего пространства в другое, копируется в центральное хранилище через SCP.
Это означает, что иногда у меня есть задача, которой нужно подождать, пока предметы приземляются в центральном хранилище. Чтобы это исправить, у меня есть задача запустить скрипт оболочки, который опрашивает хранилище через SCP на наличие необходимых элементов и выдает ошибку, если элементы не доступны через пять минут.
Единственным недостатком этого является то, что вам нужно передать параметр (номер сборки), чтобы сохранить сборки на той же странице, не позволяя одной сборке выбрать артефакт предыдущей версии. Это и вам нужно настроить множество ключей SSH, чтобы избежать необходимости передавать пароль при запуске сценариев SSH.
Как я уже сказал, не идеальное решение, но я считаю, что оно более стабильно, чем код захвата артефактов ssh для моего конкретного выпуска Hudson (и моего набора SSH-серверов).
Один недостаток: SSH-серверам на большинстве машин Linux, похоже, действительно не хватает производительности. Такое решение, как мое, имеет тенденцию перегружать ваш SSH-сервер множеством подключений, приходящих примерно в одно и то же время. Если вы обнаружите, что то же самое происходит с вами, вы можете добавить задержки по таймеру (простое, несовершенное решение) или перестроить сервер SSH с помощью высокопроизводительных исправлений. Однажды я надеюсь, что высокопроизводительные исправления появятся в базовом коде сервера SSH, при условии, что они не окажут негативного влияния на безопасность сервера SSH.