Введение в TeamCity сервер

Введение в TeamCity сервер

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс

Добрый день. Подошел черед рассмотреть такое замечательно средство непрерывной интеграции как TeamCity. В этой статье мы рассмотрим следующий стек технологий: .NET, C#, NUnit, Selenium 2, git, MSBuild. Будут рассмотрены такие задачи, как интеграция с git, сборка C#-проектов, NUnit-тесты (как модульные, интеграционные, так и тесты UI).
Об “непрерывной интеграции” существует много материала, повторять эту тему в сотый раз вряд ли нужно.

Ну и для начала – что может TeamCity? А может он следующее: при появлении новых изменений в указанной ветке репозитория (или ином событии) выполнить сценарий, включающий в себя сборку приложения, запуск тестов, заливку файлов на удаленный сервер и т.д.

Важным моментом является то, что “сервер интеграции” и “машина, на которой будет проходить сам процесс”, – обычно (не обязательно) разные серверы. Более того, машин, на которых запускаются сборки и тесты, может быть несколько, и все на разных ОС – в общем, есть, над чем задуматься.

Для запуска процесса сборки используется программа-агент, принимающая команды от самого сервера. И запустить ее можно на любой из основных ОС (благодаря мультиплатформенности Java). На одну машину можно установить несколько агентов и запускать их параллельно, но важно понимать, что один агент единовременно может обрабатывать только один проект. При старте задачи TeamCity выбирает первый подходящий незанятый агент, причем можно устанавливать “фильтрацию”, например, выбирать агентов только по признаку определенной ОС (например, Windows) или только с установленной платформой .NET версии не ниже 4.5 и т.д.

Наш рабочий сценарий будет выглядеть следующим образом:

  1. Забрать новые изменения из репозитория с применением триггера;
  2. Собрать проект;
  3. Если всё прошло успешно на предыдущем шаге – прогнать юнит-тесты для получения быстрого результата, чтобы дать быстрый фидбек девелоперам (смоук-тест);
  4. Если всё прошло успешно на предыдущем шаге – прогнать регрессионные тесты тесты;
  5. Если всё прошло успешно на предыдущем шаге – прогнать функциональные тесты.

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

Создание нового проекта

Начинается всё с создания проекта.

teamcity

После этогопереходим в настройки конфигурации сборки.

teamcity-1

На втором шаге создания конфигурации необходимо установить используемую VCS, в нашем случае – git.

teamcity-2

Добавление нового репозитория производится при нажатии на кнопку кнопкой “Attach new VCS root”.

Ключевые настройки:

teamcity-3

  • VCS root ID – уникальный код, который можно не трогать. Генерируется автоматически;
  • Fetch URL – адрес, с которого мы будем забирать содержимое репозитория;
  • Default branch – ветка, с которой будет браться информация;
  • Authentication method – способ аутентификации. Тут может быть и доступ без авторизации (если данные лежат, например, на внутреннем сервере), по ключу, и также по паролю.

Остальные опции можно оставить без изменения.

Связанные статьи