
Применение Kotlin DSL в TeamCity для автоматизации пайплайнов: кейс команды ВКонтакте
alibabaih 10 минут назад Применение Kotlin DSL в TeamCity для автоматизации пайплайнов: кейс команды ВКонтакте Простой 11 мин 186 Блог компании VK DevOps * Kotlin * Управление разработкой * Управление продуктом * Кейс...
GPT-5.6 31 Temmuz 2026'da yayınlanacak mı?
В сфере искусственного интеллекта произошло заметное событие. alibabaih 10 минут назад Применение Kotlin DSL в TeamCity для автоматизации пайплайнов: кейс команды ВКонтакте Простой 11 мин 186 Блог компании VK DevOps * Kotlin * Управление разработкой * Управление продуктом * Кейс Привет, Хабр. Меня зовут Василий Щитов. Я старший инженер в команде CI-инфраструктуры ВКонтакте.
Когда в компании десятки проектов и сотни сборок, ручное управление конфигурациями через UI быстро превращается в хаос. Внести однотипное изменение во все пайплайны, отследить историю правок или быстро развернуть окружение на новом инстансе TeamCity становится нетривиальной задачей. Можно превратить этот хаос в упорядоченную структуру, если описать конфигурацию как код с помощью Kotlin DSL.
Технические детали
Но далеко не все понимают, как работать с Kotlin DSL для решения своих задач. Я расскажу об основных подходах и паттернах, которые мы применяем, чтобы облегчить жизнь при работе с TeamCity. TeamCity и два пути к CI/CDTeamCity — CI/CD-платформа, которая позволяет автоматизировать жизненный цикл программного продукта, начиная от компиляции и тестов и заканчивая развёртыванием готового решения.
Управлять конфигурациями в TeamCity можно двумя способами:Через графический интерфейс (UI). Такой способ интуитивно понятен, позволяет быстро запустить первую сборку. Отлично подходит для знакомства с системой или настройки небольших уникальных задачЧерез Kotlin DSL — с помощью описания всей конфигурации как кода.
Пайплайны, параметры, шаги и связи между ними описываются в текстовых файлах на языке Kotlin. Файлы хранятся в системе контроля версий вместе с исходным кодом приложенияУ обоих подходов своя область применения. Например, UI удобен для точечных изменений и быстрого старта.
Отраслевые последствия
Но когда проектов становится больше, а процессы усложняются, его возможностей начинает не хватать. Масштабные изменения требуют рутинной ручной работы, а откатить настройку или перенести конфигурацию между проектами становится сложно. Для решения этих задач команды выбирают второй путь — Kotlin DSL.
Этот подход сложнее, у него выше порог входа. Но он даёт больше возможностей, о которых я и расскажу. Подключение DSL к проектуКак основу для примера возьмём root-пространство — это самый простой уровень иерархии в TeamCity, который подходит для демонстрации базовой структуры.
vcs rootВот простой пример с конфигурацией проектов: object Build : BuildType({ name = "Build" })Здесь несколько основных компонентов конструкции: — корневая сущность, определяющая весь проектbuildType(Build) — ссылка на объект сборки, созданный нижеobject Build: BuildType({... }) — самоопределение объекта сборки, где указывается его название и пошаговые инструкции — блок, содержащий шаги сборки. В примере шаг один — это скрипт с выводом текста Hello, World!
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





