В настоящее время у нас есть сервер CruiseControl.Net, который весело строит магистраль на нашем svn-сервере. У меня появилось новое требование построить «последнюю» ветку; есть ли в CruiseControl лучший способ справиться с этим? Какие конкретные изменения необходимы для одновременной сборки из ствола и ветки?





Создайте второй проект точно так же, как оригинал, где исходный элемент управления указывает на правильную ветку.
Обычно я создаю новый рабочий каталог с именем branch, настраиваю систему управления версиями для отслеживания ветки и перетаскивания в новую папку. Я также добавил фильтр исключения в сборку магистрали, чтобы она не запускалась при регистрации в ветке (наши ветки обычно находятся в области магистрали проверки изменений). Я также не забываю изменить метки, если мы размечаем, чтобы отразить соглашение об именах веток. Одна очень полезная вещь, которую вы можете сделать, - это если у вас когда-либо будет активна только одна ветка, просто назовите ее таким образом, как только ваша конфигурация будет полностью настроена.Вам нужно только прокомментировать или раскомментировать эти части в файле конфигурации по мере необходимости, вместо того, чтобы обновите его во всех местах, например, если один раз это будет ветка 6.1, а в следующий раз - 6.2, это сэкономит много времени на сокращение и замену, и мне нужно только изменить имя проекта и метку в следующий раз, когда мы будем использовать ветку.
Что касается Cruisecontrol.net, проект есть проект. Неважно, ветка это или ствол. Просто настройте другой проект в ccnet.config, который указывает на то, где находится ветка.
Чтобы все было организовано, я люблю добавлять номер версии к названиям проектов веток следующим образом:
ProjectX <- Транк
ProjectX-4.0 <- Историческая ветка для v4.0
Это именно то, что мы делаем. Пока настройки Working / Artifact / TrunkURL настроены правильно, это не проблема для CCNet.