Сделать установочный пакет доступным для загрузки после преобразования - PullRequest
0 голосов
/ 04 мая 2020

У меня есть конвейер выпуска в Azure Devops. Он состоит из 3 этапов.

Моя сборка создает артефакт с помощью пакета веб-развертывания.

На этапе 1 выполняется развертывание в IIS на локальной машине с агентом Azure. Это прекрасно работает. Я также выполняю преобразование переменной в строке подключения.

Следующий этап - развертывание в Pre Prod. НО этот компьютер не доступен для меня, поэтому фактическое развертывание выполняется по электронной почте / FTP с установочным пакетом для клиента. Итак, мне нужно запустить преобразование и сделать файл WebDeploy.zip доступным для загрузки.

Другими словами: мне нравится иметь возможность загружать 2 пакета с правильными преобразованными настройками. PreProd.zip и Prod.zip

Этап 3 похож на этап 2, но с переменными Prod.

Ответы [ 2 ]

0 голосов
/ 05 мая 2020

Для пакета веб-развертывания существует файл xx.SetParameters. xml, в котором хранится необходимое значение, поэтому вы можете обновить этот файл на этих этапах, а затем отправить необходимые файлы на целевой сервер через FTP / SSH / Email et c ...

Настройка параметров для развертывания веб-пакетов

С другой стороны, для основного проекта ASP. NET файл настроек соответствует Переменная окружения - лучший и простой способ. (Ответ Кшиштофа) * ​​1007 *

Обновление 1:

Существуют некоторые расширения, которые можно использовать для преобразования. https://marketplace.visualstudio.com/search?term=transform&target=AzureDevOps&category=All%20categories&sortBy=Relevance

Например: XDT-преобразование

0 голосов
/ 04 мая 2020

Я не уверен, как выглядит ваше приложение и настройки приложений. json. Но вы можете подготовить один пакет для всех envs одновременно. Используя раздел проверки JSON провайдер конфигурации здесь . Тогда вам нужно только установить (или попросить установить) ASPNETCORE_ENVIRONMENT переменную envrioment.

Итак, вам нужно три файла:

  • appsettings.dev. json
  • appsettings.preprod. json
  • appsettings.prod. json

Я не уверен, как вы уже решаете преобразование, но вы можете для экземпляра использовать token замените задачу на это:

ваша конфигурация preprod может выглядеть так:

{
  "ConnectionStrings": {
    "BloggingDatabase": "#{Preprod.ConnectionString}#"
  },
}

и ваш файл prod:

{
  "ConnectionStrings": {
    "BloggingDatabase": "#{Prod.ConnectionString}#"
  },
}

Теперь, если вы добавите * Переменные 1026 * и Prod.ConnectionString в вашем конвейере заменят токен значениями переменных. Таким образом, вы можете повторно использовать один и тот же пакет для всех сред.

РЕДАКТИРОВАТЬ:

Вы также можете рассмотреть возможность использования Защищенные файлы . Пожалуйста, проверьте также DownloadSecureFile задачу.

РЕДАКТИРОВАТЬ

Другой вариант JSON подстановка переменных это похоже замена токена выполняется только перед развертыванием, поэтому файл с секретами не сохраняется как артефакт.

...