TeamCity включает в себя множество функций, которые могут усилить сборку. В этом уроке рассказывается, как использовать определенные билд-раннеры и для чего это может понадобиться.
Билд-раннер — это компонент TeamCity, который обеспечивает интеграцию с определенным инструментом сборки (Ant, MSBuild, командной строкой и т. п.). В настройках билд-раннера можно указать, какие задачи сборки нужно запустить, какую версию инструмента сборки использовать, какой образ Docker/Linux использовать в качестве контейнера и т. п. В конфигурации сборки билд-раннер определяет параметры выполнения сборки и создания отчетов о ней. В TeamCity по умолчанию входят много билд-раннеров, включая .NET, Maven, Gradle, Docker, Python, Node.js и другие.
Давайте откроем и отредактируем конфигурацию сборки. Один из шагов требует использования командной строки. Скрипт выполняет следующие команды:
cd
;mvn clean package
;.jar
в частную корзину S3. Мы исключим запуск пакета mvn clean package
и воспользуемся для этого специальными функциями Maven в TeamCity. Можно просто удалить строку в пользовательском скрипте и нажать Save:
Теперь нужно добавить новый шаг сборки. TeamCity предложит выбрать конкретный раннер:
Для каждой технологии, интегрированной с TeamCity, предусмотрен отдельный раннер. Например, для сборки проектов .NET стоит выбрать раннер .NET, а для запуска скриптов командной строки — раннер командной строки. Билд-раннер Docker удобно использовать для шагов, связанных с Docker, раннер Gradle — для проектов Gradle, и так далее.
Полный список билд-раннеров TeamCity приведен в документации.
Поскольку мы работаем с проектом Maven, выбираем в раскрывающемся списке Maven. После этого нужно заполнить поля, которые предлагает TeamCity.
Файл pom.xml
находится в директории сервиса калькулятора, поэтому нужно выбрать правильную папку, нажав на иконку дерева. На экран выводится представление всех директорий в виде дерева, поэтому вам не нужно вводить имя папки с клавиатуры, рискуя сделать опечатку. Просто выберите директорию из списка.
Шаг mvn clean package
можно выполнить в Docker-контейнере, выбрав имя образа Docker в Docker Hub, например maven:latest
. TeamCity получит нужный образ, явным образом запустит из него Docker-контейнер, в этом контейнере запустит задание mvn clean package
, а затем удалит контейнер.
Чтобы настроить шаги сборки вручную, перейдите по ссылке:
В TeamCity можно выбрать конкретный раннер покрытия кода. Например, можно добавить раннеры покрытия кода IntelliJ IDEA или JaCoCo, не прописывая их жестко в файле pom.xml
.
Давайте добавим в качестве имени паттерна пакета com.jetbrains.teamcity.*
. TeamCity проанализирует пакеты, чьи имена соответствуют паттерну.
Кроме того, TeamCity позволяет настроить расширенные параметры. Например, можно выбрать разные версии проекта Maven или указать конкретную версию Java для запуска всего проекта.
Благодаря всем этим настройкам больше не надо волноваться, сработает ли вызов командной строки. Обо всем позаботится TeamCity.
Итак, сначала запускается скрипт командной строки, затем идет шаг с использованием Maven. Нам нужно изменить порядок шагов сборки, чтобы сначала запускался пакет mvn clean package
, а потом шла загрузка в S3 с помощью командной строки.
После этого достаточно нажать Run, и все заработает.
После выполнения сборки можно перейти на страницу общей информации о ней. Здесь появились новые вкладки Maven Build Info и Code Coverage, а также новый раздел результатов тестирования (Tests) и анализа покрытия кода (Code Coverage).
Информация о сборке Maven
На странице Maven build info дана общая информация о том, какие задачи были решены с помощью той или иной версии Maven. Здесь же показаны полученные артефакты, например файл .jar
, созданный Maven.
Кроме того, отчет покажет все зависимости с соответствующими версиями, которые были использованы Maven в этой сборке. Таким образом, вы получаете информацию о библиотеках, включенных в сборку. Это удобно в том числе при отладке.
Наконец, вы увидите все плагины Maven, активированные во время сборки.
Страница обзора тестов
На странице обзора тестов, которую вы получаете бесплатно при использовании раннера Maven, тоже много полезной информации. Вот что входит в отчет:
Кроме того, у каждого теста есть своя история с основной информацией об этом тесте. Она пригодится, если нужно разобраться в проблемах при тестировании, например: «Почему этот тест внезапно занял больше времени? Это неустойчивый тест?» — и т. п.
Подробнее об отчетах о тестировании — в этом видео.
Отчет об покрытии кода
Отчет о покрытии кода дает информацию об использованных классах и методах, а также о том, какая доля кода покрыта тестами.
Чтобы увидеть все эти отчеты в интерфейсе TeamCity, достаточно выбрать пару параметров в раннере покрытия кода в IntelliJ IDEA.
На сегодня все! Чтобы узнать, как пользоваться другими возможностями TeamCity, например отчетами о тестировании или о покрытии кода, посмотрите другие обучающие материалы.
Удачных сборок!
В этом уроке рассказывается, как использовать TeamCity для запуска скриптов командной строки, которые лежат в основе пайплайнов сборки.
Это видео посвящено конфигурированию сборки для создания и загрузки артефактов, запуску сборки и последующему доступу к артефактам через интерфейс TeamCity.
В TeamCity легко извлечь данные из сборок с помощью артефактов. В этом уроке подробно рассматривается работа с ними в TeamCity.