2011-01-07 3 views
9

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

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

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

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

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

+0

Вы когда-нибудь находили ответ на этот вопрос? – reach4thelasers

ответ

17

Yep. Это довольно просто, по крайней мере, с текущей версией TeamCity (6.5.3). В вашем «основном» проекте, создать архивный артефакт:

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

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

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

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

0

Возможно, вы могли бы получить заархивированные артефакты вручную на первом этапе сборки, создав 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

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