В этом уроке мы поговорим о правилах размещения артефактов в TeamCity. Правила размещения артефактов довольно просты, но важно учитывать некоторые тонкости.
Если в этой сборке навести курсор на иконку артефакта, мы увидим два артефакта без какой-либо структуры папок: файл журнала приложения и видео Selenium в формате .mp4.
Если перейти на страницу Build Configuration settings | Artifact paths, мы увидим, что оба артефакта лежат в директории calculator-service/artifacts/*
.
Пути к артефактам (Artifact paths) можно указывать разными способами. Например,
+:**/* => target_directory
-:directory1 => target_directory
означает, что TeamCity будет публиковать все файлы, кроме directory1
, в директории target_directory
.
В нашем случае мы указываем TeamCity, что нужно взять все содержимое директории калькулятора и поместить его в папку артефактов, которая есть у каждой сборки. Эта папка может храниться в Amazon S3 или в инфраструктуре любого другого провайдера.
Следующие две строки дают одинаковый результат:
Давайте укажем другой путь для хранения артефактов. Вместо того, чтобы помещать все сразу в подпапку artifacts
, попросим TeamCity переместить файлы в папку another_directory
. Кроме того, исключим из копирования в хранилище все файлы с расширением .log
.
Поскольку правила дополняют друг друга, мы даем TeamCity указание взять все файлы и перенести в другую директорию. Плюс к этому мы указываем, что нужно исключить файлы .log
.
В завершение давайте добавим еще одно правило:
+:calculator-service/**/application.log => hello_world/whatever.log
Оно указывает TeamCity, что нужно взять журналы приложений application.log
из всех поддиректорий **
в директории calculator-service
и поместить их в папку hello_world
. Кроме того, файл application.log
нужно переименовать в whatever.log
.
После сохранения изменений и запуска сборки мы увидим, что пути хранения артефактов изменились. Теперь у нас есть разные папки и подпапки, в которых находятся артефакты:
Рекомендуем также посмотреть уроки по созданию первого пайплайна сборки и по отправке информации о сборке на внешние платформы, например Jira.
Удачных сборок!
Подробнее — в документации по зависимостям артефактов TeamCity.
О том, что такое репозиторий артефактов — в руководстве по CI/CD в TeamCity.