Публикация артефактов a, b, c как a.zip , b.zip , c.zip

#teamcity #artifacts

#teamcity #артефакты

Вопрос:

У меня есть сборка TeamCity, от которой зависят другие сборки. Эта сборка создает некоторый вывод внутри каталога, например output_dir /dir1, output_dir /dir2, output_dir /dir3.

Есть ли какой-либо способ сохранить эти 3 каталога отдельно как dir1.zip , dir2.zip , dir3.zip ? Мне нужно что-то вроде output_dir/dir* => dir*.zip

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

Ответ №1:

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

  • В Общих настройках > Пути к артефактам введите ссылку на некоторый параметр сборки:

введите описание изображения здесь

  • Установите для этого параметра сборки пустую строку
  • Создайте этап сборки, например PowerShell, который посвящен созданию реальных шаблонов путей к артефактам, таких как output_dir/dir1 => dir1.zip, output_dir/dir2 => dir2.zip и т.д.
  • В качестве последнего шага этого сценария PowerShell используйте служебное сообщение TeamCity, чтобы присвоить %artifact.pattern% параметру сборки это сгенерированное значение.

Честно говоря, я сам этого не пробовал, но тот факт, что Artifacts paths поле поддерживает параметры сборки, заставляет меня думать, что это возможно. Конечно, вы можете понять, что это слишком хлопотно, и обновление значения вручную было не такой уж плохой идеей 😉