Как предотвратить параллельные сборки для конфигурации сборки между несколькими агентами сборки - PullRequest
18 голосов
/ 21 февраля 2011

У меня есть много конфигураций сборки в TeamCity, каждая из которых обслуживает большой проект.В прошлом, если сборка началась, Агент сборки мог быть занят до 20 минут!

Для повышения пропускной способности я установил второй Агент сборки на той же машине , что, еслизапуск сборки начинается, скажем, агентом сборки 1, и он занят в течение 20 минут, и кто-то из другого проекта вносит изменения, тогда агент сборки 2 может выполнить сборку для другого проекта, не дожидаясь завершения текущего запуска сборки.

Все было хорошо, пока две последовательные проверки не привели к тому, что оба Агента сборки запустили сборку для одной конфигурации сборки параллельно.Поскольку некоторые ресурсы являются общими, каталоги и базы данных IIS, я не хочу, чтобы одна конфигурация сборки работала на обоих агентах сборки параллельно.

Как я могу убедиться, что сборка не запущена, если сборка выполняется в данный момент?выполняется для этой конфигурации сборки на другом агенте сборки?

Один из способов , по-видимому, включает переменные среды и обеспечивает 50/50 разделение агентом сборки с точки зрения совместимости конфигурации сборки , но это кажется немного неуклюжим.

1 Ответ

27 голосов
/ 21 февраля 2011

Вы можете " Ограничить число одновременно запущенных сборок " для конфигурации сборки (страница общих настроек).

Установите 1, чтобы выполнить вашу задачу.

...