Совместное использование файла между этапами выпуска в Azure DevOps (VSTS) - PullRequest
0 голосов
/ 14 ноября 2018

Общая картина : мы используем процесс выпуска Azure DevOps (пока мы создаем шаги в конструкторе, а не в конвейерах YAML). Мы выпускаем 3 среды с 3 различными базами данных. Часть выпуска - развертывание базы данных из файла DACPAC. Поскольку использование SqlPackage.exe для публикации непосредственно в базе данных не очень прозрачно (вы не видите и не просматриваете реальный скрипт SQL), мы хотели сделать выпуск в 2 этапа:

  1. Создать сценарий SQL из DACPAC и просмотреть его
  2. После утверждения запустите app и db deploy из ранее созданного сценария.

Проблема : Как передать файл сценария sql между этапами и как просмотреть его для утверждения. Этапы могут быть запущены на другом агенте.

Что я пробовал :

  1. Публикация скрипта как артефакта сборки - это не сработает, потому что для генерации скрипта мне нужно подключиться к базе данных, и подключение к нему не должно быть частью процесса сборки, особенно подключения к производственной базе данных.
  2. Публикация артефакта в конвейеры Azure в качестве шага выпуска - он не разрешен при выпуске, только для сборок Опубликовать
  3. Публикация артефакта в общей папке - я не уверен, как именно это работает, документация не очень хорошо сделана. Более того, в нашей инфраструктуре будет сложно настроить регулярный общий доступ к файлам Windows, я бы предпочел этого избежать.

Есть еще предложения?

1 Ответ

0 голосов
/ 27 января 2019

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

Вы также можете создать файл с заполнителями в качестве артефакта сборки и объединить окончательные настройки из переменных конвейера на каждом этапе.Таким образом, вы можете сохранить их как строительный артефакт.Это то, что я склонен делать для любых файлов такого рода.Похоже, что это не будет применяться к вашему сгенерированному файлу SQL.

В качестве альтернативы, если важен фрагмент «просмотра для утверждения», вы можете сгенерировать его и записать в журнал, загрузить его в Universal Package Management.Затем попросите одобрения в конце этапа.На следующем этапе вы загружаете сценарий из Universal Package Management или регенерируете его, используя точно такую ​​же конфигурацию задачи перед выполнением.

...