Рассмотрим следующий поток разработки для интерфейса JavaScript:
Хотя существуют бесконечные способы проектирования development
-> staging
-> production
pipe, вышеприведенное является достаточно стандартным, верно?
Учитывая это, почему провайдеры конвейера, такие как Bitbucket и Azure, не разрешают переменные, зависящие от среды, для build
step?
Как и большинство приложений JavaScript, наше приложение специально разработано для среды, в которой оно будет работать, например, development
, staging
и production
. Например, каждая среда имеет свой уникальный набор переменных; APP_URL
задает URL-адрес, по которому приложение будет доступно.
Переменные среды специально читаются в процессе сборки приложения, т. Е. Они являются buildtime переменными, а не runtime переменных.
Есть ли причина, по которой эти провайдеры не поддерживают разные переменные среды для шага build
? Это кажется такой очевидной вещью, которая заставляет меня думать, что на самом деле весь наш конвейерный поток неправильный, и именно мы делаем это неправильно ... Кто-нибудь может предложить способ преодоления этой проблемы? В идеале, не устанавливая эти переменные в xyz-pipelines.yml
, так как цель этих переменных - не допускать их в хранилище ...