Привет, Хабр! На прошлой неделе мы выпустили новую версию нашего CI и CD сервера: TeamCity 2017.2! Как вы, наверняка, поняли из заголовка, она полна не только новой функциональностью, но и преподнесет приятный сюрприз тем, кто пользуется бесплатной (Professional) версией. Но обо всем по порядку.

Прежде всего, список всех улучшений, как всегда, очень внушительный – ознакомьтесь с ним после прочтения этого поста, если захотите подробностей. Здесь же мы остановимся на самых “вкусных” фичах последнего релиза.

TeamCity 2017.2 released

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

Для каждого билда, который выполняет какие-либо связанные с 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

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

Deployment билды


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

Deployment Build

Автоматический апгрейд


Обновлять сервер стало намного проще. TeamCity самостоятельно проверяет наличие новой версии и сообщает о ее появлении системному администратору. Автоматически осуществляется проверка лицензии, а также предоставляется возможность в один клик запустить процедуру апгрейда.

Auto Update

Дефолтные и множественные шаблоны


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

Kotlin DSL: редактируемый UI


Если раньше при включении хранения настроек проекта в формате Kotlin DSL админский UI переходил в режим read-only, то сейчас это ограничение устранено. Настройки проектов и билд-конфигураций остаются доступными для редактирования одновременно с включенным DSL (возможностью определять их в коде). При этом изменения, сделанные через веб-интерфейс, превращаются в патчи на Kotlin, которые добавляются в определенное место под проектом в VCS репозитории.

Улучшенное управление плагинами


Управлять плагинами также стало удобнее – в панели администратора появился список установленных плагинов, с помощью которого можно выключать или удалять существующие плагины, а также добавлять новые. При добавлении плагина TeamCity предложит перезапуск сервера из UI.

Plugin Management

Загрузить последнюю версию TeamCity 2017.2 можно с нашего сайта. Замечания и предложения по новой версии оставляйте в нашем баг-трекере.

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

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

И напоследок, еще раз полный список новых фич 2017.2.

Удачных сборок!

Комментарии (9)


  1. appsforlife
    08.12.2017 04:45

    В тексте новости и на сайте это дается витьевато, можете подтвердить, что 100 билд-конфигураций доступны «начиная с 2017.2», а не «в 2017.2». Спасибо :)


    1. yegnau Автор
      08.12.2017 13:10

      Подтверждаю, с 2017.2 и далее. Извините, если формулировка показалась вам витиеватой. Никакой двоякости не планировали закладывать.


  1. Reiges
    08.12.2017 13:08
    +1

    В описании у них однозначно:
    "Starting from this version, the free TeamCity Professional edition allows 100 build configurations per server."


  1. Pavel_Sm
    08.12.2017 13:08

    А как у TC с API для управления конфигурациями? Дублировать, создавать, настраивать и тп. Или какие-то другие инструменты для представления конфигурации как кода?


    1. yegnau Автор
      08.12.2017 13:24

      Есть REST API, который позволяет управлять конфигурациями. Также есть возможность использовать Kotlin DSL для описания настроек TeamCity в коде. У нас есть серия статей в блоге на эту тему, в этой, например, описывается динамическое создание билд конфигураций в зависимости от параметров.


  1. kalbas
    08.12.2017 16:50

    Большое спасибо за инструмент, этот релиз прямо чудесный! И за фичи, и мне показалось UI хорошо ускорился.


    1. yegnau Автор
      08.12.2017 17:13

      Рад, что вам нравится! Передам коллегам. Над UI активно работаем, надеюсь, в следующих релизах улучшения будут не менее заметны.


  1. zeromodule
    08.12.2017 18:10

    Большое спасибо!
    Великолепный набор изменений, это однозначно лучшая новость года)


    1. yegnau Автор
      08.12.2017 18:38

      Спасибо за столь высокую оценку :)