Итак, у меня есть приложение, которое содержит серверную часть ASP.NET Core и интерфейс React (чисто статический).
В нашем TFS 2018 мы создали сборку, которая выполняет следующие действия:
- Получить источники из репо
- Получить пакеты Nuget (бэкэнд)
- Сборка бэкэнда
- Запуск бэкэнд-тестов
- Получить пакеты NPM (внешний интерфейс)
- Построить интерфейс
- Запуск тестов внешнего интерфейса
- Создание и публикация артефактов
Затем Release забирает эти артефакты и развертывает их в Azure AppService (бэкэнд) и учетной записи Azure Storage v2 (веб-интерфейс).
В настоящее время у нас есть только одна среда, но нам нужно поддерживать несколько. Проблема заключается в том, что сборка внешнего интерфейса зависит от некоторых переменных среды, которых нет на этапе сборки. Сборка еще не знает, где она будет развернута.
Так что здесь есть несколько вариантов:
- Создание сборки внешнего интерфейса в версии. Для этого необходимо, чтобы Release мог получить доступ к источникам, либо через Git, либо через артефакт. Последний действительно медленный из-за всех узлов node_modules.
- Сборка должна создавать артефакты сборки для всех возможных сред, и каждая среда выпуска выбирает соответствующую.
Какой рекомендуемый подход для обработки этого в TFS 2018?