2009-07-28 3 views
5

Мне было поручено настроить сервер CI в моей компании, и я ищу некоторые советы о том, какие конфигурации сборки мне нужны для моих проектов. В качестве первого шага я настроил строит как:Конфигурации конфигурации непрерывной интеграции

Commit Построить: компилирует код и запускает блок тестирует
интеграционной сборки: компилирует код и запускает длительные тесты интеграции

Я не уверен, что еще я необходимо будет заполнить изображение CI. Например, какие конфигурации у вас есть в вашем магазине?

Я знаю, что должен быть шаг для развертывания моих успешных сборок, но я бы сделал часть развертывания интеграции?

Использование Teamcity, MSBsuild и SVN

В поисках столь необходимых консультаций.

ответ

2

Вещи, которые мы запускаем в предыдущем проекте в каждом прогоне CI, где записи об обложке кода публикуют автоматизированную сгенерированную документацию и отчеты Checkstyle.

Это дало нам некоторую статистику статистического качества каждой проверки для планирования и улучшения наших рабочих привычек.

1

Мы построили конфигурации для

  • компиляции + модульных тестов + статического анализа (FindBugs в нашем случае) + покрытие кода (срабатывает при фиксации)
  • интеграционные тесты (срабатывают по расписанию до тех пор, пока является фиксация)
  • развертывания для тестирования (вручную) срабатывает

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

6

Самая полная сборка, которую я когда-либо видел, сделала следующее в данном порядке. Есть две группы, все цели в каждой группе выполняются независимо от отказа, но группа терпит неудачу, если член группы выходит из строя. Поэтому мы видим ВСЕ проблемы.

Первая группа работает над источниками:

  • каталог чистая работа
  • обновление новейших источников, получить все из SVN
  • компиляции источников, РЦМП и т.д.
  • valudate XML ресурсы (по крайней мере в Java было много, например, дескрипторы развертывания, таблицы стилей и т. д.)
  • сделать статический анализ кода доступным для источников, например проверка пробелов, кодирование условных обозначений, имена файлов или более сложные проверки, выполненные в AST источника (например, PMD делает это для Java).
  • проверить правила именования других файлов, например. мы проверили имена всех зависимых библиотек на наличие номера версии.

Второй группа работает над вырабатываемой кодой, только если первый шаг удался:

  • запустить блок тестирует тесты
  • работать быстро интеграции
  • сделать статический анализ кода, доступный для источников (большинство инструментов для Java делают это так), например проверка типичных шаблонов ошибок (например, Findbugs делает это для Java)
  • делать проверку ссылок, например. соблюдение наслоения архитектуры, пособие использования определенных классов из других классов и т.д.
  • создать полный пакет развертывания

Это основная сборка, запускаемая время после того, как время для фиксаций. Он сделал много, но с некоторой мощной машиной, использующей несколько ядер, было около 4 минут для 500 000 LOC. Тестеры могут получить новейшие сборки моментальных снимков, если захотят.

длительные интеграционные тесты (2 часа каждый) будет выполняться один раз в сутки и только делают

  • компилировать
  • бег длинные ходовые испытания

Другой билд был чисто documantion сборки, спровоцированный один раз в сутки. Это никогда не потерпит неудачу.

  • создать API документацию
  • сделать полный статический анализ кода со всеми правилами и производить какой-то индикатор общего качества проекта
  • отчеты покрытия продукции (это жаль, что мы не обеспечивали охват расти) от всех проектов, созданных до
  • Производите всякую причудливую документацию, такую ​​как сайт Maven или Sonar report и т. д. Это используется для управления/QA в большинстве случаев.
1

У нас был подобный разговор на самой последней CITCON Северной Америки (Continuous Integration и конференц-тестирование), где все мы делились своими впечатлениями и попытался собрать дорожную карту от простого CI очень построен из CI и выпуска систем ,

Оригинальные примечания к конференции: here. Наряду с Flickr photostream. A cleaned up version доступен также в блоге urbancode.

Австралийцы пересмотрела тему на CITCON Брисбене и pencast этого доступен

Надежда некоторые из этих ресурсов являются полезными.

1

Я работаю над этим в данный момент. Наша конфигурация сборки делает следующее:

Сложение:

  • Compile.
  • Тест.
  • Объединить различные конкретные значения конфигурации среды с базовой конфигурацией (это оставляет нас с Staging.config, test.config и т.д.)
  • Создайте файл с именем VERSION.TXT что списки строить раз, номера версий и т.д.
  • Publish все это в чистый каталог. Затем он выбирается как артефакт сборки по команде.

Теперь у нас есть приложение, которое может быть опубликован на любом сервере, просто скопировав его в каталог развертывания и переименовании соответствующий конфигурационный файл в web.config

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

  • Tag освобожденный версия
  • Создать архив его в месте его в директории для сохранения сохраняя
  • Перейти на весь CheckIN комментариев после последней живой сборки и выписок с номерами билетов. Затем используйте заголовки билетов для создания предварительного списка изменений. Это редактируется премьер-министром, прежде чем будет сохранено для потомства.
Смежные вопросы