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

Как вы передаете пути артефакта в script в TeamCity. Сценарий - это

  • Проект сборки
  • Развертывание проекта (с зависимостью артефакта С# 1)

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

  • Остановка службы (для разблокировки файлов)
  • Копирует артефакты сборки на сервер
  • Перезапуск службы

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

Ответы

Ответ 1

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

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

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

  • /p >

    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 из вашего развертывания script, который находится в папке сборки, например:

    ..\bin\[your files]

Затем вы можете передать путь к артефактам сборки, подобным этому

%teamcity.build.checkoutDir%\bin\