Работа с правилами размещения артефактов

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

Если в этой сборке навести курсор на иконку артефакта, мы увидим два артефакта без какой-либо структуры папок: файл журнала приложения и видео Selenium в формате .mp4.

tutorials-img

Если перейти на страницу Build Configuration settings | Artifact paths, мы увидим, что оба артефакта лежат в директории calculator-service/artifacts/*.

tutorials-img

Пути к артефактам (Artifact paths) можно указывать разными способами. Например,

+:**/* => target_directory

-:directory1 => target_directory

означает, что TeamCity будет публиковать все файлы, кроме directory1, в директории target_directory.

В нашем случае мы указываем TeamCity, что нужно взять все содержимое директории калькулятора и поместить его в папку артефактов, которая есть у каждой сборки. Эта папка может храниться в Amazon S3 или в инфраструктуре любого другого провайдера.

Следующие две строки дают одинаковый результат:

tutorials-img

Давайте укажем другой путь для хранения артефактов. Вместо того, чтобы помещать все сразу в подпапку artifacts, попросим TeamCity переместить файлы в папку another_directory. Кроме того, исключим из копирования в хранилище все файлы с расширением .log.

tutorials-img

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

В завершение давайте добавим еще одно правило:

+:calculator-service/**/application.log => hello_world/whatever.log

tutorials-img

Оно указывает TeamCity, что нужно взять журналы приложений application.log из всех поддиректорий ** в директории calculator-service и поместить их в папку hello_world. Кроме того, файл application.log нужно переименовать в whatever.log.

После сохранения изменений и запуска сборки мы увидим, что пути хранения артефактов изменились. Теперь у нас есть разные папки и подпапки, в которых находятся артефакты:

tutorials-img

Рекомендуем также посмотреть уроки по созданию первого пайплайна сборки и по отправке информации о сборке на внешние платформы, например Jira.

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

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

О том, что такое репозиторий артефактов — в руководстве по CI/CD в TeamCity.