Управление конфигурацией из кода в TeamCity

Усовершенствуйте свой автоматизированный CI/CD-пайплайн, настраивая его программным способом. Храните конфигурации сборки TeamCity и управляйте ими в системе контроля версий, чтобы упростить их повторное использование, обеспечить переносимость, единообразие и удобство сопровождения.

TeamCity Configuration as Code.

Пользуйтесь преимуществами контроля версий за счет хранения конфигураций в виде кода

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

Легко откатывайте конфигурации сборки к более ранним версиям.

Проводите ревью каждого обновления.

Контролируйте доступ к логике вашего пайплайна.

Следите за всеми изменениями в журнале аудита.

Единый источник истины для ваших CI/CD-пайплайнов

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

  • Пользуйтесь поддержкой Git, Mercurial, Perforce, Subversion и Azure DevOps (ранее TFS).
  • Задавайте параметры конфигурации сборки с помощью Kotlin DSL или в XML-файлах и просматривайте результаты в TeamCity.
  • Для управления изменениями в пайплайнах пользуйтесь ветками, пул-реквестами, тегами и сравнением изменений.
  • Легко откатывайтесь к более ранним версиям пайплайна сборки и тестирования.
  • Следите за всеми обновлениями в журнале аудита изменений.

Широкие возможности настоящего языка программирования

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

Управляйте всеми функциями сборки TeamCity на интуитивно понятном статически типизированном языке.

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

Создавайте конфигураций сборки в IntelliJ IDEA, пользуясь навигацией по коду, автодополнением, подсветкой синтаксиса и предложениями по рефакторингу.

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

Звучит заманчиво! Но я не знаю Kotlin...

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

Sounds Great! But I Don’t Speak Kotlin...

Удобство масштабирования

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

Operate CI/CD at Scale.

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

Как в Picnic ускорили сборку с помощью TeamCity Cloud и Kotlin DSL

«Наша политика — отключить редактирование в интерфейсе TeamCity. Одна из наших целей — стандартизация пайплайнов, поэтому мы используем конфигурацию как код. Все конфигурации сборки хранятся в соответствующих репозиториях в виде Kotlin-кода. Мы создали собственный DSL поверх TeamCity Kotlin DSL, и теперь для определения пайплайна нам хватает 20 строчек кода, а то и меньше».

– Иван Бабенков, ведущий разработчик, Picnic

Простая и понятная документация

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

Take Advantage of Clear and Concise Documentation

Непрерывность во всем

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

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

Вопросы и ответы

Что такое Сonfiguration as Сode?

Configuration as Сode — это распространенный принцип управления серверами CI с помощью кода. Преимущества такого подхода включают поддержку версионирования через репозиторий VCS, упрощенный аудит изменений и широкие возможности переносимости конфигураций. Многие пользователи предпочитают управлять конфигурацией программно, а не через интерфейс.

В чем преимущество конфигурации CI/CD-проектов программным способом?

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

Как TeamCity поддерживает управление конфигурацией из кода?

Есть несколько способов хранения конфигурации в виде кода. TeamCity поддерживает два из них: XML и Kotlin DSL.

Каковы преимущества использования Kotlin DSL для управления конфигурацией?

По сравнению с XML использование Kotlin DSL дает несколько преимуществ при конфигурации проекта:

  • больше контроля над кодом;
  • расширенная поддержка крупных проектов;
  • более гибкие конфигурации;
  • экономия времени за счет повторного использования одного и того же кода.

Начните работу в TeamCity

Эффективный CI/CD-пайплайн для команд, хранящих конфигурацию в виде кода