TeamCity - нетривиальная последовательность сборки, пожалуйста, совет - PullRequest
2 голосов
/ 05 ноября 2010

Мне поручено улучшить качество и внедрить TeamCity для непрерывной интеграции. Мой опыт работы с TeamCity очень ограничен - я использую в основном TFS и имею некоторый опыт работы с CC.NET.

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

Моя главная проблема заключается в том, что в каждом из них мне нужно было бы запустить несколько бегунов. Например, первый шаг сборки должен состоять из:

  • Создание новых файлов AssemblyInfo.cs для согласованной нумерации сборок
  • Фактическая компиляция
  • Частичный модульный тестовый запуск (все тесты, которые выполняются быстро и проверяют основные функции)
  • Запуск FxCop
  • Запуск StyleCop

Текущая версия TeamCity позволяет настраивать только одного бегуна ... что заставляет меня зацикливаться на многих вещах.

Как бы вы подошли к этому? Моя текущая идея состоит в том, чтобы использовать MsBuild runner для всего и в основном запустить мой собственный скрипт на основе MsBuild, который затем выполняет все, в значительной степени так, как это делает TFS (и так же, как я делал вещи обратно в cc.net способом с моим собственным скриптом сборки Nant).

Что касается еще одной проблемы, вопрос заключается в том, как представить статистическую информацию, например, из модульных тестов, выполняемых на разных этапах (конфигурации сборки). У нас есть некоторые дальнейшие действия, которые требуют некоторого времени для запуска и мы хотим, чтобы это выполнялось на 2-м или 3-м шаге (последний, например, тестирование кода генерации базы данных, который, включая загрузку базовых данных, занимает около 15+ минут). ОТО, мы бы очень хотели, чтобы результаты тестов были как-то консолидированы.

У кого-нибудь есть идеи?

Спасибо.

Ответы [ 3 ]

4 голосов
/ 16 февраля 2011

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

1 голос
/ 13 ноября 2010

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

Создайте сценарий msbuild для обработки первых двух пунктов: генерации и компиляции AssemblyInfo.Сконфигурируйте бегун msbuild для запуска вашего скрипта и запуска ваших тестов.Соберите свои сборки как артефакты.

Создайте вторую конфигурацию сборки для FxCop.Запустите его с первой сборки.Присвойте ему «зависимость от артефактов» в первой сборке, и именно так он завладеет вашими DLL.

Для StyleCop TC не поддерживает его из коробки, как это делает FxCop.Добавьте его в сценарий msbuild вручную и создайте html-отчет (который затем может отобразить TeamCity).

0 голосов
/ 05 ноября 2010

Вам нужно взглянуть на функциональность Зависимости в TeamCity. Эта функция позволяет создавать последовательность конфигураций сборки. Другими словами, вам нужно создать конфигурацию сборки для каждого шага, а затем связать все их как зависимости. Для консолидации результатов теста, пожалуйста, возьмите лут в Зависимости от артефактов . Это может помочь.

...