Зависимость TeamCity от заархивированного артефакта - PullRequest
9 голосов
/ 07 января 2011

На странице артефактов в TeamCity есть возможность загрузить все артефакты в виде zip-файла.

Мне было интересно, можно ли настроить зависимые конфигурации сборки, чтобы фактически получить сжатую версиюартефакты?

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

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

Кто-нибудь знает о способе передачиархивные артефакты из каждого другого проекта или, если это поддерживается TeamCity?

Ответы [ 2 ]

17 голосов
/ 20 августа 2011

Да.Это довольно просто, по крайней мере, с текущей версией TeamCity (6.5.3).В своем "основном" проекте создайте сжатый артефакт:

MyProjectBuildFolder\** => mybuild-%system.build.number%.zip

После сборки вы увидите все свои файлы в артефакте zip.Затем создайте новую конфигурацию сборки.Вы захотите отредактировать зависимости этой сборки и добавить новую «зависимость от артефакта».Отредактируйте его свойства следующим образом:

  1. Зависит от: Конфигурация сборки из вашего основного проекта сверху.
  2. Получить артефакты из: Последняя успешная сборка
  3. Пути артефактов: Если вы хотите просто скопировать zip-файл, это будет *.zip.Если вы хотите, чтобы TeamCity распаковал для вас zip-файл, используйте *.zip!**.
  4. Путь назначения: % some.parameter.representing.your.path%

Теперь, когда запускается зависимая сборка, он берет последний zip-архив из вашего основного проекта и распаковывает его в папку назначения зависимой сборки.

0 голосов
/ 30 марта 2011

Возможно, вы могли бы получить сжатые артефакты вручную, на первом этапе сборки, создав URL-адрес для зависимой конфигурации.В сборке вы можете получить параметры зависимых сборок, которые могут помочь вам построить URL.

URL выглядит следующим образом: http://your.server/(guestAuth|httpAuth)/repository/downloadAll/bt457/12345:id/artifacts.zip

где bt457 - идентификатор вашей конфигурации сборки 12345- идентификатор сборки зависимой сборки, которую вы должны получить в своей сборке как системное свойство dep.bt457.teamcity.build.id

подробнее здесь: http://confluence.jetbrains.net/display/TCD6/Predefined+Build+Parameters#PredefinedBuildParameters-DependenciesProperties

Всеэто не очень элегантно, но должно работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...