-1

Моя команда использует директивы компилятора для создания различных версий нашего продукта для разных этапов (отладка, тестирование, выпуск), но теперь мы хотим переместить стратегию CI/CD, и мы обсуждаем, рекомендуется использовать директивы компилятора вообще, поскольку артефакт (ы), созданный для одной конфигурации, не может использоваться для другого, например, наш сервер CI запускает процесс сборки с помощью конфигурации и всех этапов процесса сборки pass, включая автоматические тесты пользовательского интерфейса, артефакты, созданные в этом процессе, не могут быть развернуты для производства, потому что для производства приложение необходимо скомпилировать с использованием конфигурации версии, создав таким образом новый набор непроверенных артефактов для развертывания производственной среды, которая в мое мнение делает работу, выполненную на предыдущем этапе, устаревшей, потому что вы, вероятно, захотите запустить свои тесты против вновь созданных артефактов.C# директивы компилятора использовать в конвейере непрерывной доставки

У кого-то была похожая ситуация, и если да, то как вы обращались к ней со своей командой. Является ли хорошей идеей использовать директивы компилятора C#, когда вы хотите перейти к стратегии CI/CD?

ответ

0

У нас была аналогичная проблема два года назад. Мы перестраивали наш код для каждой среды (DEV, QA, MOCK, PROD), и в некоторых случаях проверки выполнялись между средами и аннулировали все наши тесты. Когда мы начали нашу поездку на компакт-диск, мы знали, что нам нужно было построить сборку один раз/развернуть много сценариев. Мы использовали MSDeploy для развертывания всего нашего кода. Сюда входят веб-сайты/службы, службы Windows, запланированные задачи и базы данных SQL.

Мы размещаем все различия в среде в наших конфигурационных файлах и управляем преобразованиями через Parameterization in MSDeploy. Параметрирование применяется во время развертывания. Программа установки состоит из файла parameters.xml, который определяет, что нужно параметризовать, и файл SetParameters. [Environment] .xml для каждой среды с соответствующими значениями для этого окружения.

+0

Спасибо за информацию. Я рассмотрю этот подход. –