TeamCity Build & Deploy: как передать скрипту зависимые пути артефактов?

Как передать пути артефактов скрипту в TeamCity. Сценарий такой

  1. Строительство
  2. развернуть проект (с зависимостью артефакта от #1)

Шаг 2 состоит из скрипта, который

  1. останавливает службу (для разблокировки файлов)
  2. копирует артефакты сборки на сервер
  3. перезапускает службу

Я борюсь с шагом 2, я считаю, что мне нужно пройти путь артефактов сборки в скрипт, но я не вижу, как вы это делаете?

1 ответов


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

  • Настройте свои артефакты из основной сборки, которую, похоже, вы уже сделали.

    Example: **\bin\release\*.* => bin
  • настройка зависимости артефакта (мы также делаем снимок оснастки зависимость, но вам не нужно), чтобы вытащить артефакты из основной сборки и поместить их в локальную папку в вашей сборке развертывания.

    Example: Artifacts paths: bin\**\*.* Destination path: bin\
  • мы используем смесь MSBuild и PowerShell для выполнения фактической работы по развертыванию. В каждом случае вы можете ссылаться на артефакты, используя относительный путь.

    если рабочая папка сборки выглядит следующим образом:

    root
     |- bin (Artifacts pulled in from main build)
     |- src
     |- build (Where your build and deployment scripts live)
    

    вы получите доступ к файлам bin из сценария развертывания, расположенного в папки созидать как:

    ..\bin\[your files]

затем вы можете пройти путь к артефактам сборки, как это

%teamcity.build.checkoutDir%\bin\