Какие инструменты вы используете для автоматизированных сборок / автоматизированных развертываний? Зачем?
Какие инструменты вы используете для автоматизированных сборок / автоматизированных развертываний? Зачем?
Какие инструменты вы рекомендуете?
20 ответов
Хадсон для автоматизированных сборок. Я выбрал его, потому что он был самым простым в настройке и демонстрации. Система, которая слишком сложна и не выглядит привлекательно, не будет достаточно впечатляющей для менеджмента, чтобы использовать ее для автоматизированных сборок. Особенно в проекте, который имеет много инерции.
NAnt для сборок (но MSBuild, Rake, почти все будет хорошо) и CruiseControl.NET для развертываний. В настоящее время я работаю с новым Cruise от студий ThoughtWorks, так как он обеспечивает лучший способ организации различных конвейеров и позволяет мне развернуть любую версию, которую я хочу, в целевой среде.
Мы используем TeamCity, от JetBrains. Они также делают Resharper и IntelliJ.
Мы используем его для создания наших приложений.Net, и его было довольно легко настроить, подключиться к TFS и запустить дополнительные инструменты из. Это очень отполировано, и фактически напоминает мне об этом сайте. Нашел это намного лучше, чем CruiseControl, и для нашей команды это бесплатно. Если вам нужно много разных сборок, больше сборок для каждого пользователя и так далее, то это стоит немного (но все же вполне разумно).
Мы используем комбинацию инструментов сборки и сервера непрерывной интеграции:
Инструменты сборки:
Серверы непрерывной интеграции:
Как ни странно, я потратил две недели на доработку (читай реализацию с нуля) нашего ночного процесса сборки. Большое удовольствие (нет, правда). Я поиграл с идеей установить Team Foundation Server, но мы используем Perforce для управления исходным кодом, и я не думал, что это стоило хлопот.
Теперь наш процесс представляет собой набор сценариев Powershell, которые выполняются на выделенном сервере сборки / тестирования и которые выполняют следующие задачи по расписанию:
Сотрите все дерево исходного кода (сначала убедитесь, что у вас ничего не проверено!)
Свести все исходное дерево из Perforce (из последней помеченной сборки)
Генерация отчета об изменениях (путем синхронизации с HEAD и просмотра того, что происходит)
Создайте приложение
Индексируйте файлы PDB для источников Perforce
Храните двоичные файлы и символы на выделенном сервере символов
Запустите тестовые проекты
Сборка установщика
этикетка
Разослать электронные письма группе с отчетами о состоянии всего вышеперечисленного
Работает хорошо.
Для наших вещей, скомпилированных для Windows, мы используем FinalBuilder.
Автоматизированная сборка Studio.
Вместо того, чтобы позволить вам работать со скриптами или XML-файлами, он поставляется с предопределенными графическими макрооперациями, которые позволяют вам легко создавать задачи.
UppercuT использует NAnt для сборки, и это невероятно простая в использовании Build Framework.
Automated Создает так же просто, как (1) имя решения, (2) путь управления исходным кодом, (3) название компании для большинства проектов!
http://code.google.com/p/uppercut/
Несколько хороших объяснений здесь: UppercuT
Дополнительная информация
UppercuT - это обычная автоматическая сборка, которая означает, что вы настраиваете конфигурационный файл, а затем получаете множество функций бесплатно. Возможно, наиболее мощная функция - это возможность задавать параметры среды в ОДНОМ месте и применять их повсюду, включая документацию при сборке исходного кода.
Документация доступна: https://github.com/chucknorris/uppercut/wiki
Особенности:
- Простая настройка
- Простые обновления
- Пользовательские точки расширения (предварительная, публикация и замена) для каждого этапа процесса сборки http://uppercut.pbworks.com/CustomizeUsingExtensionPoints
- Имеется документация для интеграции с Team City, CruiseControl.NET и Jenkins (ранее Hudson) https://github.com/chucknorris/uppercut/tree/master/docs
- Работает на Linux с Mono
- Управление версиями DLL на основе номера сборки и версий контроля версий (SVN, TFS, Git, HG)
- Компилировать действия - F5 или Ctrl + Shift + B
- Сильные названия сделаны так же легко, как правда / ложь
- Тестирование и анализ кода
- тестирование
- NUnit
- MbUnit v2
- Gallio
- XUnit
- NCover
- NDepend
- Nitriq
- Моно Миграционный Анализатор
- тестирование
- затемнение
- ILMerge
- Создание шаблонов и создание среды (ConfigBuilder, DocBuilder, SQLBuilder, DeploymentBuilder) https://github.com/chucknorris/uppercut/blob/master/docs/ConfigBuilder.doc?raw=true
- Упаковка продукции для подготовки к развертыванию
- Zips до выхода
CruiseControl для автоматизированных сборок. Работает отлично.
Я думаю, что для автоматизированных сборок лучшим инструментом сейчас является Team City JetBrain. Бесплатная версия имеет все функции, которые вам понадобятся для большинства команд из 5-10 человек. Настройка проста, настройка новых проектов безболезненна (относительно), а главное, надежна.
Для автоматизированных миграций ничто не сравнится с PowerShell.
На работе мы используем добрый старый Ant для создания наших Java-сервлетов.
Я успешно использовал buildbot, запускаемый сценарием пост-фиксации в хранилище Subversion. Это использовалось как для автоматизированных сборок, так и для автоматического тестирования.
Раньше мы использовали Visual Build от программного обеспечения Kinook, но недавно с нашим новым приложением мы перешли на MSBuild, так как у него была лучшая интеграция с TFS и возможность создавать собственные задачи.
TeamCity запускает сценарии NAnt для сборки / упаковки и PowerShell для развертывания.
Я обнаружил, что использование NAnt, работающего на TeamCity, вместо нативных бегунов TeamCity позволяет нам иметь более богатый процесс сборки (например, css minimiser и т. Д.). Это также означает, что весь процесс сборки / упаковки можно запускать на любом компьютере разработчика, а не только на серверах TeamCity, что значительно упрощает настройку и устранение проблем в процессе сборки.
ANT для сборки и развертывания / установки.
Отличный кроссплатформенный установщик.
Сделайте для сборки. Пакеты Debian для развертываний (поскольку наши производственные серверы запускают их).
Мы используем Hericus Zed Builds and Bugs Management для наших автоматических сборок.
У нас есть 4 ветви кода, каждая с java, C++, C#, кросс-платформенными компиляторами и установщиками для 5 ОС.