Это общая проблема (и я хочу, я прочитал его раньше) для всего развития, а не только ASP.NET. Будучи одним из его разработчиков, моя команда, естественно, использует BuildMaster внутренне для всего процесса выпуска, и для большинства сценариев это бесплатно. Внутри инструмента мы можем выполнить все стандартные сборки CI для создания артефактов, а затем настроить процесс автоматизации для развертывания этих артефактов на любом из 40 + серверов, которые мы размещаем внутри или снаружи, в зависимости от конкретного приложения или среды ,
Поскольку вы упомянули о развертывании в разных средах тестирования, это фундаментальный аспект инструмента. Идея состоит в том, чтобы моделировать рабочий процесс среды (например, Integration -> QA -> Production), который у вас уже есть, и по существу продвигать сборку от источника до производства. В большинстве случаев это так же просто, как добавление действия развертывания, которое развертывает артефакт в среде, в других случаях это может быть намного сложнее.
Вы также случайно упомянули, что изменения в конфигурационном файле являются частью развертывания, что является еще одним встроенным компонентом BuildMaster. Идея, которую мы имели, заключалась в том, чтобы использовать этот инструмент как центральный концентратор для всех конфигурационных файлов и развертываний, тем самым обеспечив автоматическое применение последних изменений с помощью простого «развертывания файлов конфигурации» в вашем плане развертывания.
Одна вещь, о которой вы не упомянули в отношении этого процесса, - это аспект развертывания базы данных. Для большинства приложений ASP.NET требуется связанная база данных, иначе они могут быть просто статическими HTML-файлами. Крайне важно, чтобы схема базы данных обновлялась до соответствующей версии базы данных при каждом развертывании. Существует, что не удивительно, модуль в BuildMaster, который обрабатывает это и для вас. Идея состоит в том, чтобы хранить сценарии DDL-DML в самом инструменте и, выполняя скрипты только один раз для каждой среды, это гарантирует, что все ваши базы данных в каждой среде будут обновлены по мере развертывания ваших построений через них. Другие сценарии (например, хранимые процедуры, представления, триггеры и т. Д.) Являются, по существу, кодовыми файлами и поэтому принадлежат к источнику управления. Эти сценарии типа DROP-CREATE-CONFIGURE могут запускаться каждый раз в большинстве случаев с помощью простого действия развертывания.
Еще одна часть проблемы развертывания, о которой большинство разработчиков не думает, - это автоматизация процессов. Многим разработчикам необходимо выполнить выписки или заполнить формы запросов на изменение, чтобы вручную выполнить эти процессы. Опять же, все это доступно как часть автоматической настройки рабочего процесса в BuildMaster. Вы можете настроить блокировщики, которые не позволяют продвигать рекламу в среде QA, если только все модульные тесты не пройдены, или заблокировать продвижение в промежуточной среде, если кто-либо из команды QA не одобрит сборку, и все проблемы в вашем инструменте отслеживания проблем разрешены/закрыты для этот особый выпуск.
Хотя я понимаю, что я отказался от CC.NET из ответа, наши приложения все построены и развернуты через BuildMaster, поэтому мы больше не нуждаемся в этом, хотя мы могли бы так же легко набрать артефакты из места перетаскивания и развернуть их в более поздних средах.
Хм, хотя это кажется очень крутым ... это, похоже, не помогает сценарию автоматической сборки (если я не читаю документы неправильно). – 2008-09-12 15:15:22