Привет, Хабр! На прошлой неделе мы выпустили новую версию нашего CI и CD сервера: TeamCity 2017.2! Как вы, наверняка, поняли из заголовка, она полна не только новой функциональностью, но и преподнесет приятный сюрприз тем, кто пользуется бесплатной (Professional) версией. Но обо всем по порядку.
Прежде всего, список всех улучшений, как всегда, очень внушительный – ознакомьтесь с ним после прочтения этого поста, если захотите подробностей. Здесь же мы остановимся на самых “вкусных” фичах последнего релиза.
После обновления до версии 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 действия, можно включить билд фичу Docker Support. Это добавит дополнительную вкладку “Docker” на страницу билда, а также позволит:
Краткое видео демо новых Docker фич (на английском):
В 2017.2 реализована поддержка тулчейна .NET CLI для сбора .NET Core проектов прямо из коробки. Фактически, мы сильно переработали и включили в дистрибутив популярный плагин .NET CLI, и теперь нет необходимости устанавливать его отдельно.
Что в него входит:
Видео обзор (тоже по-английски):
Появился новый тип билд конфигураций – композитный билд. Композитные билды агрегируют результаты нескольких билдов, связанных друг с другом через snapshot-зависимости, и отображают их как единый билд. Они дают единое представление всей цепочки билдов, показывая общий прогресс, оповещения об упавших тестах, проблемах с билдами, а также отображают все артефакты.
Композитный билд не занимает агента и показывается как исполняющийся, как только запустилась одна из его зависимостей. В частности, это позволяет вам существенно уменьшить число конфигураций на дэшборде, убрав зависимости и оставив там только композитные конфигурации.
Теперь вы можете помечать билд-конфигурации, которые выполняют deployment-задачи как deployment. В результате билды, от которых такие конфигурации зависят, получат секцию Deployments, где вы можете легко запромоутить текущий билд в выбранное окружение.
Обновлять сервер стало намного проще. TeamCity самостоятельно проверяет наличие новой версии и сообщает о ее появлении системному администратору. Автоматически осуществляется проверка лицензии, а также предоставляется возможность в один клик запустить процедуру апгрейда.
Появилась возможность устанавливать шаблоны по умолчанию для всех билд-конфигураций в проекте. Это позволяет легко внедрять изменения сразу во все билд-конфигурации проекта, изменив лишь один шаблон. Также добавлена возможность прикреплять билд-конфигурации к нескольким шаблонам одновременно.
Если раньше при включении хранения настроек проекта в формате Kotlin DSL админский UI переходил в режим read-only, то сейчас это ограничение устранено. Настройки проектов и билд-конфигураций остаются доступными для редактирования одновременно с включенным DSL (возможностью определять их в коде). При этом изменения, сделанные через веб-интерфейс, превращаются в патчи на Kotlin, которые добавляются в определенное место под проектом в VCS репозитории.
Управлять плагинами также стало удобнее – в панели администратора появился список установленных плагинов, с помощью которого можно выключать или удалять существующие плагины, а также добавлять новые. При добавлении плагина TeamCity предложит перезапуск сервера из UI.
Загрузить последнюю версию TeamCity 2017.2 можно с нашего сайта. Замечания и предложения по новой версии оставляйте в нашем баг-трекере.
Также можно попробовать все новые фичи без загрузки и установки сервера, с помощью TeamCity TestDrive – бесплатного тест-драйва TeamCity в облаке.
Напоминаем, что вы можете пользоваться TeamCity без ограничений по времени и функциональности, бесплатно. Если вам вдруг перестанет хватать трех агентов и 100 билд-конфигураций, или вы захотите общаться c нашей службой поддержки по почте, то всегда можно приобрести Enterprise лицензию, предварительно получив пробную версиюна 60 дней.
И напоследок, еще раз полный список новых фич 2017.2.
Удачных сборок!
Прежде всего, список всех улучшений, как всегда, очень внушительный – ознакомьтесь с ним после прочтения этого поста, если захотите подробностей. Здесь же мы остановимся на самых “вкусных” фичах последнего релиза.
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 действия, можно включить билд фичу 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-зависимости, и отображают их как единый билд. Они дают единое представление всей цепочки билдов, показывая общий прогресс, оповещения об упавших тестах, проблемах с билдами, а также отображают все артефакты.
Композитный билд не занимает агента и показывается как исполняющийся, как только запустилась одна из его зависимостей. В частности, это позволяет вам существенно уменьшить число конфигураций на дэшборде, убрав зависимости и оставив там только композитные конфигурации.
Deployment билды
Теперь вы можете помечать билд-конфигурации, которые выполняют deployment-задачи как deployment. В результате билды, от которых такие конфигурации зависят, получат секцию Deployments, где вы можете легко запромоутить текущий билд в выбранное окружение.
Автоматический апгрейд
Обновлять сервер стало намного проще. TeamCity самостоятельно проверяет наличие новой версии и сообщает о ее появлении системному администратору. Автоматически осуществляется проверка лицензии, а также предоставляется возможность в один клик запустить процедуру апгрейда.
Дефолтные и множественные шаблоны
Появилась возможность устанавливать шаблоны по умолчанию для всех билд-конфигураций в проекте. Это позволяет легко внедрять изменения сразу во все билд-конфигурации проекта, изменив лишь один шаблон. Также добавлена возможность прикреплять билд-конфигурации к нескольким шаблонам одновременно.
Kotlin DSL: редактируемый UI
Если раньше при включении хранения настроек проекта в формате Kotlin DSL админский UI переходил в режим read-only, то сейчас это ограничение устранено. Настройки проектов и билд-конфигураций остаются доступными для редактирования одновременно с включенным DSL (возможностью определять их в коде). При этом изменения, сделанные через веб-интерфейс, превращаются в патчи на Kotlin, которые добавляются в определенное место под проектом в VCS репозитории.
Улучшенное управление плагинами
Управлять плагинами также стало удобнее – в панели администратора появился список установленных плагинов, с помощью которого можно выключать или удалять существующие плагины, а также добавлять новые. При добавлении плагина TeamCity предложит перезапуск сервера из UI.
Загрузить последнюю версию TeamCity 2017.2 можно с нашего сайта. Замечания и предложения по новой версии оставляйте в нашем баг-трекере.
Также можно попробовать все новые фичи без загрузки и установки сервера, с помощью TeamCity TestDrive – бесплатного тест-драйва TeamCity в облаке.
Напоминаем, что вы можете пользоваться TeamCity без ограничений по времени и функциональности, бесплатно. Если вам вдруг перестанет хватать трех агентов и 100 билд-конфигураций, или вы захотите общаться c нашей службой поддержки по почте, то всегда можно приобрести Enterprise лицензию, предварительно получив пробную версиюна 60 дней.
И напоследок, еще раз полный список новых фич 2017.2.
Удачных сборок!