В этом уроке рассказывается, как использовать TeamCity для запуска скриптов командной строки, которые лежат в основе пайплайнов сборки.
Мы создали в демонстрационных целях репозиторий GitHub:
github.com/marcobehlerjetbrains/buildpipelines. Делайте форки этого репозитория и пользуйтесь ими вместе с нашими инструкциями.
В репозитории два микросервиса: Authorization-Service и Calculator-Service. Вы можете скопировать URL, перейти к сервисам TeamCity и создать новый проект на основе URL репозитория. Поскольку это публичный репозиторий, вам не нужны никакие пароли и токены доступа.
На следующем этапе TeamCity подключится к репозиторию и создаст на его основе проект. В системе отобразится ветка по умолчанию, то есть основная ветка. Каждые 60 секунд будут отправляться пул-реквесты для любых изменений, после чего запускается сборка.
Можно также, используя символы подстановки, указать, в каких еще ветках необходимо отслеживать изменения.
В TeamCity конфигурация сборки представляет собой задание. При настройке проекта TeamCity сканирует файлы в репозитории и автоматически определяет шаги сборки.
В этом уроке мы не будем использовать шаги сборки, определенные автоматически, поскольку нам надо запустить собственный скрипт командной строки. Но все же отметим, что TeamCity может сканировать исходный репозиторий проекта в системе контроля версий и автоматически определить подходящие шаги сборки в файлах решений Node.js, Kotlin, Python, Ant, NAnt, Gradle, Maven, MSBuild, Visual Studio, в файлах проектов PowerShell и Xcode, а также в проектах Rake и IntelliJ IDEA.
Чтобы настроить шаги сборки вручную, перейдите по ссылке:
Поскольку мы собираемся запустить скрипт командной строки, в раскрывающемся списке выбираем Command Line.
На следующем шаге надо выбрать в раскрывающемся списке вариант Run Custom Script и вставить наш скрипт сборки в соответствующее поле. Мы выполним команду mvn clean package
. Как и у многих других инструментов, у наших билд-агентов этот пакет установлен по умолчанию.
mvn clean package
компилирует исходный код Java, выполняет ряд тестов и создает файл .jar
.
На шаге развертывания мы запускаем инструмент командной строки AWS и копируем этот файл .jar
в частную корзину S3. После этого надо просто нажать Save.
Прежде чем нажать кнопку Run, необходимо указать учетные данные для корзины AWS S3: ID и секрет ключа доступа. Это можно сделать, например, в меню Parameters в TeamCity.
Нажмите Parameters | Add New Parameter. Сейчас мы просто добавим одну переменную окружения. Введите имя, то есть AWS_ACCESS_KEY_ID
. Нужно также выбрать вид нового параметра — в нашем случае это Environment variable (env.) — и вставить ID ключа доступа.
Обратите внимание: наш ключ доступа предназначен исключительно для демонстрации, вы не сможете его использовать.
Кроме того, нам нужно изменить параметр и установить для него тип Password. После этого TeamCity скроет значение параметра не только в интерфейсе, но и в любых других местах, например в записях журналов.
Вы увидите, что ID ключа доступа уже спрятан.
Точно так же можно добавить еще одну переменную окружения — секрет ключа доступа. После этого можно запускать сборку.
Для этого нажмите кнопку Run — откроется страница с обзором информации. По мере выполнения сборки TeamCity будет выводить здесь логи сборки, подробно описывая выполняемые действия.
По завершении сборки TeamCity покажет ее статус и данные: когда и кто запустил сборку, сколько времени она выполнялась, какой билд-агент использовался.
Мы используем скрипты командной строки, поэтому на выходе получаем только журнал сборки. Если бы вместо этого мы использовали какой-то из билд-раннеров TeamCity (например, раннер Maven), то получили бы также отчеты о тестировании и о покрытии кода и могли воспользоваться другими функциями, такими как параллельное тестирование, которые доступны «из коробки».
Посмотреть журналы сборки можно на вкладке Build Log на странице результатов сборки. Читать журналы в TeamCity очень удобно. Вам не придется скачивать весь журнал на свой компьютер (хотя вы можете это сделать) и открывать его в Notepad++: TeamCity свернет журнал сборки, а нужное место легко найти, нажав Ctrl+F.
На сегодня все! Чтобы узнать, как пользоваться другими возможностями TeamCity, например отчетами о тестировании или о покрытии кода, посмотрите другие обучающие материалы.
Удачных сборок!
Подробнее — в документации по командной строке TeamCity.
Рассказываем, как включить в конфигурацию сборки этап использования SSH, а также как загрузить SSH-ключ в TeamCity для последующей передачи билд-агентам.
TeamCity включает в себя множество функций, которые могут повысить производительность сборки. В этом уроке рассказывается, как использовать определенные билд-раннеры и для чего это может понадобиться.
В TeamCity легко извлечь данные из сборок с помощью артефактов. В этом уроке подробно рассматривается работа с ними в TeamCity.