Запуск скриптов командной строки

В этом уроке рассказывается, как использовать TeamCity для запуска скриптов командной строки, которые лежат в основе пайплайнов сборки.

Мы создали в демонстрационных целях репозиторий GitHub:

github.com/marcobehlerjetbrains/buildpipelines. Делайте форки этого репозитория и пользуйтесь ими вместе с нашими инструкциями.

В репозитории два микросервиса: Authorization-Service и Calculator-Service. Вы можете скопировать URL, перейти к сервисам TeamCity и создать новый проект на основе URL репозитория. Поскольку это публичный репозиторий, вам не нужны никакие пароли и токены доступа.

tutorials-img

На следующем этапе TeamCity подключится к репозиторию и создаст на его основе проект. В системе отобразится ветка по умолчанию, то есть основная ветка. Каждые 60 секунд будут отправляться пул-реквесты для любых изменений, после чего запускается сборка.

Можно также, используя символы подстановки, указать, в каких еще ветках необходимо отслеживать изменения.

tutorials-img

Настройка конфигурации сборки в TeamCity

В TeamCity конфигурация сборки представляет собой задание. При настройке проекта TeamCity сканирует файлы в репозитории и автоматически определяет шаги сборки.

tutorials-img

В этом уроке мы не будем использовать шаги сборки, определенные автоматически, поскольку нам надо запустить собственный скрипт командной строки. Но все же отметим, что TeamCity может сканировать исходный репозиторий проекта в системе контроля версий и автоматически определить подходящие шаги сборки в файлах решений Node.js, Kotlin, Python, Ant, NAnt, Gradle, Maven, MSBuild, Visual Studio, в файлах проектов PowerShell и Xcode, а также в проектах Rake и IntelliJ IDEA.

Настройка шагов сборки

Чтобы настроить шаги сборки вручную, перейдите по ссылке:

tutorials-img

Поскольку мы собираемся запустить скрипт командной строки, в раскрывающемся списке выбираем Command Line.

tutorials-img

На следующем шаге надо выбрать в раскрывающемся списке вариант Run Custom Script и вставить наш скрипт сборки в соответствующее поле. Мы выполним команду mvn clean package. Как и у многих других инструментов, у наших билд-агентов этот пакет установлен по умолчанию.

mvn clean package компилирует исходный код Java, выполняет ряд тестов и создает файл .jar.

На шаге развертывания мы запускаем инструмент командной строки AWS и копируем этот файл .jar в частную корзину S3. После этого надо просто нажать Save.

tutorials-img

Прежде чем нажать кнопку Run, необходимо указать учетные данные для корзины AWS S3: ID и секрет ключа доступа. Это можно сделать, например, в меню Parameters в TeamCity.

Добавление параметров

Нажмите Parameters | Add New Parameter. Сейчас мы просто добавим одну переменную окружения. Введите имя, то есть AWS_ACCESS_KEY_ID. Нужно также выбрать вид нового параметра — в нашем случае это Environment variable (env.) — и вставить ID ключа доступа.

Обратите внимание: наш ключ доступа предназначен исключительно для демонстрации, вы не сможете его использовать.

tutorials-img

Кроме того, нам нужно изменить параметр и установить для него тип Password. После этого TeamCity скроет значение параметра не только в интерфейсе, но и в любых других местах, например в записях журналов.

tutorials-img

Вы увидите, что ID ключа доступа уже спрятан.

tutorials-img

Точно так же можно добавить еще одну переменную окружения — секрет ключа доступа. После этого можно запускать сборку.

Для этого нажмите кнопку Run — откроется страница с обзором информации. По мере выполнения сборки TeamCity будет выводить здесь логи сборки, подробно описывая выполняемые действия.

tutorials-img

По завершении сборки TeamCity покажет ее статус и данные: когда и кто запустил сборку, сколько времени она выполнялась, какой билд-агент использовался.

tutorials-img

Мы используем скрипты командной строки, поэтому на выходе получаем только журнал сборки. Если бы вместо этого мы использовали какой-то из билд-раннеров TeamCity (например, раннер Maven), то получили бы также отчеты о тестировании и о покрытии кода и могли воспользоваться другими функциями, такими как параллельное тестирование, которые доступны «из коробки».

Просмотр журналов сборки

Посмотреть журналы сборки можно на вкладке Build Log на странице результатов сборки. Читать журналы в TeamCity очень удобно. Вам не придется скачивать весь журнал на свой компьютер (хотя вы можете это сделать) и открывать его в Notepad++: TeamCity свернет журнал сборки, а нужное место легко найти, нажав Ctrl+F.

tutorials-img

На сегодня все! Чтобы узнать, как пользоваться другими возможностями TeamCity, например отчетами о тестировании или о покрытии кода, посмотрите другие обучающие материалы.

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

Подробнее — в документации по командной строке TeamCity.