Каков правильный поток для JavaScript конвейера приложения с переменными времени сборки? - PullRequest
1 голос
/ 19 февраля 2020

Рассмотрим следующий поток разработки для интерфейса JavaScript:

Development Flow

Хотя существуют бесконечные способы проектирования development -> staging -> production pipe, вышеприведенное является достаточно стандартным, верно?

Учитывая это, почему провайдеры конвейера, такие как Bitbucket и Azure, не разрешают переменные, зависящие от среды, для build step?

Как и большинство приложений JavaScript, наше приложение специально разработано для среды, в которой оно будет работать, например, development, staging и production. Например, каждая среда имеет свой уникальный набор переменных; APP_URL задает URL-адрес, по которому приложение будет доступно.

Переменные среды специально читаются в процессе сборки приложения, т. Е. Они являются buildtime переменными, а не runtime переменных.

Есть ли причина, по которой эти провайдеры не поддерживают разные переменные среды для шага build? Это кажется такой очевидной вещью, которая заставляет меня думать, что на самом деле весь наш конвейерный поток неправильный, и именно мы делаем это неправильно ... Кто-нибудь может предложить способ преодоления этой проблемы? В идеале, не устанавливая эти переменные в xyz-pipelines.yml, так как цель этих переменных - не допускать их в хранилище ...

1 Ответ

1 голос
/ 20 февраля 2020

Ожидается, что в DevOps вы получите артефакт в конвейере сборки, а затем выпустите этот артефакт в среду, используя рабочий процесс Release .

Вы можете попытаться создать внешний интерфейс JavaScript приложение в конвейере Release в конвейере Release, которое может получать артефакты от систем непрерывной интеграции, таких как Azure Pipelines, Jenkins или TeamCity. Вы также можете использовать системы контроля версий, такие как Git или TFV C, для хранения ваших артефактов. Более подробную информацию можно найти по следующей ссылке:

https://docs.microsoft.com/en-us/azure/devops/pipelines/release/artifacts?view=azure-devops#sources

...