Привет, Хабр! На прошлой неделе мы выпустили новую версию нашего CI и CD сервера: TeamCity 2017.2! Как вы, наверняка, поняли из заголовка, она полна не только новой функциональностью, но и преподнесет приятный сюрприз тем, кто пользуется бесплатной (Professional) версией. Но обо всем по порядку.
Прежде всего, список всех улучшений, как всегда, очень внушительный – ознакомьтесь с ним после прочтения этого поста, если захотите подробностей. Здесь же мы остановимся на самых “вкусных” фичах последнего релиза.
![TeamCity 2017.2 released](https://habrastorage.org/webt/mm/cs/bw/mmcsbwn9kv4tgh8qucxobntqwmy.jpeg)
После обновления до версии 2017.2 все пользователи TeamCity Professional будут приятно удивлены — вместо стандартных 20 билд-конфигураций TeamCity теперь предоставляет 100! Это доступно абсолютно бесплатно каждому пользователю версии 2017.2. Никаких подводных камней. Для не знакомых с терминологией, билд-конфигурация (build configuration) в TeamCity – это то же самое, что и job в терминах Jenkins.
В 2017.2 официально появилась первоклассная поддержка Docker.
С добавлением нового Docker билд-раннера появилась возможность собирать Docker-образы как отдельный шаг сборки. Как только TeamCity обнаружит dockerfile в вашем репозитории, он автоматически предложит вам добавить шаг Docker Build.
Запускает сервисы Docker Compose на старте билда и останавливает их, когда билд заканчивается.
Позволяет запускать другие билд-раннеры (например, Gradle, Maven, Ant или любой command line) в отдельном Docker-контейнере.
![Docker Support](https://habrastorage.org/webt/bd/gv/tl/bdgvtlgxfhwj4uk1slrdad4mqv4.png)
Для каждого билда, который выполняет какие-либо связанные с Docker действия, можно включить билд фичу Docker Support. Это добавит дополнительную вкладку “Docker” на страницу билда, а также позволит:
Краткое видео демо новых Docker фич (на английском):
В 2017.2 реализована поддержка тулчейна .NET CLI для сбора .NET Core проектов прямо из коробки. Фактически, мы сильно переработали и включили в дистрибутив популярный плагин .NET CLI, и теперь нет необходимости устанавливать его отдельно.
Что в него входит:
Видео обзор (тоже по-английски):
Появился новый тип билд конфигураций – композитный билд. Композитные билды агрегируют результаты нескольких билдов, связанных друг с другом через snapshot-зависимости, и отображают их как единый билд. Они дают единое представление всей цепочки билдов, показывая общий прогресс, оповещения об упавших тестах, проблемах с билдами, а также отображают все артефакты.
![Composite Build](https://habrastorage.org/webt/r9/xz/qf/r9xzqfwq9cknw0squsnpqxfwxsm.png)
Композитный билд не занимает агента и показывается как исполняющийся, как только запустилась одна из его зависимостей. В частности, это позволяет вам существенно уменьшить число конфигураций на дэшборде, убрав зависимости и оставив там только композитные конфигурации.
Теперь вы можете помечать билд-конфигурации, которые выполняют deployment-задачи как deployment. В результате билды, от которых такие конфигурации зависят, получат секцию Deployments, где вы можете легко запромоутить текущий билд в выбранное окружение.
![Deployment Build](https://habrastorage.org/webt/zt/m9/bi/ztm9biwfchzdodxrhynqdxilrrs.png)
Обновлять сервер стало намного проще. TeamCity самостоятельно проверяет наличие новой версии и сообщает о ее появлении системному администратору. Автоматически осуществляется проверка лицензии, а также предоставляется возможность в один клик запустить процедуру апгрейда.
![Auto Update](https://habrastorage.org/webt/zj/ti/o6/zjtio6chv1npasjsc3e6rg9hvti.png)
Появилась возможность устанавливать шаблоны по умолчанию для всех билд-конфигураций в проекте. Это позволяет легко внедрять изменения сразу во все билд-конфигурации проекта, изменив лишь один шаблон. Также добавлена возможность прикреплять билд-конфигурации к нескольким шаблонам одновременно.
Если раньше при включении хранения настроек проекта в формате Kotlin DSL админский UI переходил в режим read-only, то сейчас это ограничение устранено. Настройки проектов и билд-конфигураций остаются доступными для редактирования одновременно с включенным DSL (возможностью определять их в коде). При этом изменения, сделанные через веб-интерфейс, превращаются в патчи на Kotlin, которые добавляются в определенное место под проектом в VCS репозитории.
Управлять плагинами также стало удобнее – в панели администратора появился список установленных плагинов, с помощью которого можно выключать или удалять существующие плагины, а также добавлять новые. При добавлении плагина TeamCity предложит перезапуск сервера из UI.
![Plugin Management](https://habrastorage.org/webt/vd/ue/wv/vduewv30q4fvpdzzrqxtws0aziy.png)
Загрузить последнюю версию TeamCity 2017.2 можно с нашего сайта. Замечания и предложения по новой версии оставляйте в нашем баг-трекере.
Также можно попробовать все новые фичи без загрузки и установки сервера, с помощью TeamCity TestDrive – бесплатного тест-драйва TeamCity в облаке.
Напоминаем, что вы можете пользоваться TeamCity без ограничений по времени и функциональности, бесплатно. Если вам вдруг перестанет хватать трех агентов и 100 билд-конфигураций, или вы захотите общаться c нашей службой поддержки по почте, то всегда можно приобрести Enterprise лицензию, предварительно получив пробную версиюна 60 дней.
И напоследок, еще раз полный список новых фич 2017.2.
Удачных сборок!
Прежде всего, список всех улучшений, как всегда, очень внушительный – ознакомьтесь с ним после прочтения этого поста, если захотите подробностей. Здесь же мы остановимся на самых “вкусных” фичах последнего релиза.
![TeamCity 2017.2 released](https://habrastorage.org/webt/mm/cs/bw/mmcsbwn9kv4tgh8qucxobntqwmy.jpeg)
100 билд конфигураций
После обновления до версии 2017.2 все пользователи TeamCity Professional будут приятно удивлены — вместо стандартных 20 билд-конфигураций TeamCity теперь предоставляет 100! Это доступно абсолютно бесплатно каждому пользователю версии 2017.2. Никаких подводных камней. Для не знакомых с терминологией, билд-конфигурация (build configuration) в TeamCity – это то же самое, что и job в терминах Jenkins.
Docker
В 2017.2 официально появилась первоклассная поддержка Docker.
Docker Build Runner
С добавлением нового Docker билд-раннера появилась возможность собирать Docker-образы как отдельный шаг сборки. Как только TeamCity обнаружит dockerfile в вашем репозитории, он автоматически предложит вам добавить шаг Docker Build.
Docker Compose Runner
Запускает сервисы Docker Compose на старте билда и останавливает их, когда билд заканчивается.
Docker Wrapper
Позволяет запускать другие билд-раннеры (например, Gradle, Maven, Ant или любой command line) в отдельном Docker-контейнере.
Docker Support Build Feature
![Docker Support](https://habrastorage.org/webt/bd/gv/tl/bdgvtlgxfhwj4uk1slrdad4mqv4.png)
Для каждого билда, который выполняет какие-либо связанные с Docker действия, можно включить билд фичу Docker Support. Это добавит дополнительную вкладку “Docker” на страницу билда, а также позволит:
- очищать Docker-образы, опубликованные билдом в Docker registry, если удаляется сам билд, который их опубликовал;
- включить автоматическую аутентификацию в Docker registry перед стартом билда.
Краткое видео демо новых Docker фич (на английском):
Поддержка .NET CLI
В 2017.2 реализована поддержка тулчейна .NET CLI для сбора .NET Core проектов прямо из коробки. Фактически, мы сильно переработали и включили в дистрибутив популярный плагин .NET CLI, и теперь нет необходимости устанавливать его отдельно.
Что в него входит:
- Отдельный билд-раннер .NET CLI
- Автоматическое распознавание билд-шагов по предоставленному URL
- Обнаружение .NET CLI на билд-агентах
- Иерархическое представление билд-лога
- Репортинг тестов, ошибок компиляции и других проблем сборки в режиме реального времени
- Анализ покрытия кода с помощью JetBrains dotCover
Видео обзор (тоже по-английски):
Композитные билды
Появился новый тип билд конфигураций – композитный билд. Композитные билды агрегируют результаты нескольких билдов, связанных друг с другом через snapshot-зависимости, и отображают их как единый билд. Они дают единое представление всей цепочки билдов, показывая общий прогресс, оповещения об упавших тестах, проблемах с билдами, а также отображают все артефакты.
![Composite Build](https://habrastorage.org/webt/r9/xz/qf/r9xzqfwq9cknw0squsnpqxfwxsm.png)
Композитный билд не занимает агента и показывается как исполняющийся, как только запустилась одна из его зависимостей. В частности, это позволяет вам существенно уменьшить число конфигураций на дэшборде, убрав зависимости и оставив там только композитные конфигурации.
Deployment билды
Теперь вы можете помечать билд-конфигурации, которые выполняют deployment-задачи как deployment. В результате билды, от которых такие конфигурации зависят, получат секцию Deployments, где вы можете легко запромоутить текущий билд в выбранное окружение.
![Deployment Build](https://habrastorage.org/webt/zt/m9/bi/ztm9biwfchzdodxrhynqdxilrrs.png)
Автоматический апгрейд
Обновлять сервер стало намного проще. TeamCity самостоятельно проверяет наличие новой версии и сообщает о ее появлении системному администратору. Автоматически осуществляется проверка лицензии, а также предоставляется возможность в один клик запустить процедуру апгрейда.
![Auto Update](https://habrastorage.org/webt/zj/ti/o6/zjtio6chv1npasjsc3e6rg9hvti.png)
Дефолтные и множественные шаблоны
Появилась возможность устанавливать шаблоны по умолчанию для всех билд-конфигураций в проекте. Это позволяет легко внедрять изменения сразу во все билд-конфигурации проекта, изменив лишь один шаблон. Также добавлена возможность прикреплять билд-конфигурации к нескольким шаблонам одновременно.
Kotlin DSL: редактируемый UI
Если раньше при включении хранения настроек проекта в формате Kotlin DSL админский UI переходил в режим read-only, то сейчас это ограничение устранено. Настройки проектов и билд-конфигураций остаются доступными для редактирования одновременно с включенным DSL (возможностью определять их в коде). При этом изменения, сделанные через веб-интерфейс, превращаются в патчи на Kotlin, которые добавляются в определенное место под проектом в VCS репозитории.
Улучшенное управление плагинами
Управлять плагинами также стало удобнее – в панели администратора появился список установленных плагинов, с помощью которого можно выключать или удалять существующие плагины, а также добавлять новые. При добавлении плагина TeamCity предложит перезапуск сервера из UI.
![Plugin Management](https://habrastorage.org/webt/vd/ue/wv/vduewv30q4fvpdzzrqxtws0aziy.png)
Загрузить последнюю версию TeamCity 2017.2 можно с нашего сайта. Замечания и предложения по новой версии оставляйте в нашем баг-трекере.
Также можно попробовать все новые фичи без загрузки и установки сервера, с помощью TeamCity TestDrive – бесплатного тест-драйва TeamCity в облаке.
Напоминаем, что вы можете пользоваться TeamCity без ограничений по времени и функциональности, бесплатно. Если вам вдруг перестанет хватать трех агентов и 100 билд-конфигураций, или вы захотите общаться c нашей службой поддержки по почте, то всегда можно приобрести Enterprise лицензию, предварительно получив пробную версиюна 60 дней.
И напоследок, еще раз полный список новых фич 2017.2.
Удачных сборок!
Комментарии (9)
Reiges
08.12.2017 13:08+1В описании у них однозначно:
"Starting from this version, the free TeamCity Professional edition allows 100 build configurations per server."
Pavel_Sm
08.12.2017 13:08А как у TC с API для управления конфигурациями? Дублировать, создавать, настраивать и тп. Или какие-то другие инструменты для представления конфигурации как кода?
yegnau Автор
08.12.2017 13:24Есть REST API, который позволяет управлять конфигурациями. Также есть возможность использовать Kotlin DSL для описания настроек TeamCity в коде. У нас есть серия статей в блоге на эту тему, в этой, например, описывается динамическое создание билд конфигураций в зависимости от параметров.
zeromodule
08.12.2017 18:10Большое спасибо!
Великолепный набор изменений, это однозначно лучшая новость года)
appsforlife
В тексте новости и на сайте это дается витьевато, можете подтвердить, что 100 билд-конфигураций доступны «начиная с 2017.2», а не «в 2017.2». Спасибо :)
yegnau Автор
Подтверждаю, с 2017.2 и далее. Извините, если формулировка показалась вам витиеватой. Никакой двоякости не планировали закладывать.