Интеграция TeamCity с системами контроля версий

Управление версиями — важнейший элемент любого CI/CD-пайплайна, поэтому TeamCity «из коробки» предлагает интеграцию со всеми ведущими системами контроля версий (а также некоторыми другими). Если ваш код хранится в Git, Mercurial, Perforce, Subversion, Team Foundation (TFVC) или сразу в нескольких системах контроля версий, с помощью TeamCity вы сможете создать гибкие и эффективные рабочие процессы для автоматической сборки, тестирования и развертывания своих приложений.

Единая CI — собрать их всех

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

Повышение производительности

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

Не стоит изобретать велосипед

Вы хотите тестировать новый код в CI-системе без коммита, автоматически выполнять слияние «зеленых» пул-реквестов или помечать коммиты в Git, относящиеся к релизным версиям приложения? Вам не нужно писать собственные скрипты для автоматизации повторяющихся действий в VCS: TeamCity уже поддерживает все эти сценарии!

Поддержка популярных технологий

TeamCity интегрируется со всеми основными системами контроля версий и сервисами их хостинга, применяемыми в современной разработке.

Типы систем контроля версий

  • Azure DevOps (TFVC)
  • Subversion
  • CVS и многие другие

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

Что дает интеграция TeamCity с системами контроля версий

Поддержка различных систем контроля версий

Сегодня многие команды хранят части кода в разных системах контроля версий. Например, кто-то использует старую кодовую базу, у кого-то разные части приложения используют разные возможности контроля версий, а кто-то переходит с одной VCS на другую. Как бы то ни было, TeamCity может получать исходный код из любого количества репозиториев в разных системах контроля версий и делать единую сборку.

Настраиваемые триггеры сборки

Большинство CI/CD-пайплайнов включают в себя много этапов — от первоначальных проверок собственной ветки разработчика, до полного набора регрессионных тестов при слиянии с основной веткой, прежде чем версия будет отмечена как предрелизная.

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

Отчеты о статусе коммитов и пул-реквестов

Для удобства разработчиков TeamCity может работать в фоновом режиме: система будет отслеживать изменения в репозиториях, запускать сборки и информировать вас о результатах в контексте хостинга VCS. Для создания отчетов о ходе сборки в реальном времени и просмотра результатов сборки и тестирования прямо из GitHub, GitLab, Bitbucket или Azure DevOps используйте функцию Commit Status Publisher.

Автоматическое слияние изменений

Автоматическое слияние очень удобно, если вы меняете код в функциональных ветках в Git или Mercurial: можно обновлять функциональные ветки и минимизировать конфликты благодаря регулярному слиянию изменений из основной ветки. Сразу после завершения работы в функциональной ветке изменения автоматически сливаются с основной веткой в соответствии с заранее определенными условиями (например, после успешной сборки).

Интеграция с баг-трекерами

Часто бывает нужно посмотреть, какие задачи упоминаются в сообщениях к коммитам — будь то при отладке после неудачных тестов или при обновлении примечаний к релизу. TeamCity обеспечивает интеграцию с баг-трекерами платформ хостинга VCS и автономными инструментами, позволяя просматривать информацию о задачах прямо в интерфейсе и преобразовывать ID задач в прямые ссылки.

Аутентификация с технологией единого входа

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

Сколько разработчиков — столько и рабочих процессов. Один или несколько репозиториев, функциональные ветки, релизные ветки или пул-реквесты, облачные и локальные серверы в разных регионах и юрисдикциях, запуск тестовых наборов последовательно или параллельно, лимит запросов к облачным платформам и ограничения доступа — список можно продолжать бесконечно. Каких бы процессов вы ни придерживались, какие бы платформы ни использовали, интуитивно понятный интерфейс TeamCity поможет создать CI/CD-пайплайн, отвечающий вашим потребностям, и придерживаться принципа «конфигурация как код».

Вопросы и ответы: интеграция TeamCity с системами контроля версий

Может ли TeamCity выполнить сборку, если код распределен между несколькими VCS?

TeamCity может выполнить сборку проекта, исходный код которого хранится в Git, Perforce, Mercurial, SVN и других репозиториях, включая облачные решения.

Поддерживает ли TeamCity пул- и merge-реквесты?

TeamCity поддерживает пул-реквесты и merge-реквесты в GitHub, GitLab, Azure DevOps и Bitbucket Server. Кроме того, в решение встроен Perforce Shelve Trigger для обработки изменений в отложенных файлах из списков изменений Perforce.

Интеграция TeamCity с системами контроля версий — это платная функциональность?

Интеграция с системами контроля версий доступна во всех версиях TeamCity, включая бесплатную локальную версию. TeamCity Cloud предлагает 14-дневный бесплатный пробный период.

Можно ли выполнить сборку кода в TeamCity, не отправляя его в VCS?

У TeamCity есть плагины для IDE на платформе IntelliJ, а также для Visual Studio. Они позволяют выполнить сборку без коммита. Это удобно, если разработка ведется в пределах одной ветки, как это часто бывает, например, при разработке игр.