У меня есть файл окружения, который я использую локально, но я не зарегистрировался в системе контроля версий. Это выглядит примерно так:
env.ts
const config = {
prod: {
serviceA: {
varA: 'xyz',
varB: 'xyz',
varC: 'xyz',
varD: 'xyz',
},
serviceB: {
varA: 'xyz',
varB: 'xyz',
varC: 'xyz',
varD: 'xyz',
},
},
test: {
serviceA: {
varA: 'xyz',
varB: 'xyz',
varC: 'xyz',
varD: 'xyz',
},
serviceB: {
varA: 'xyz',
varB: 'xyz',
varC: 'xyz',
varD: 'xyz',
},
},
};
export default config;
Используя Webpack, я могу загружать соответствующие переменные окружения для конкретной службы при локальном построении. Модуль может обращаться к этим переменным среды следующим образом:
import config from '@env';
const {
varA,
varB,
varC,
varD,
} = config[process.env.NODE_ENV].serviceA;
Я настроил этот проект с AWS CodePipeline и CodeBuild, и я понял, что тесты и сборка не будут работать, потому что мой Файл env.ts не проверяется в управлении исходным кодом, поскольку он содержит конфиденциальные учетные данные.
Я могу добавить переменные среды внутри консолей CodePipeline / CodeBuild, но я не думаю, что это будет работать, поскольку код ссылка на файл с именем env.ts, который не проверен в управлении исходным кодом.
Возможно ли сохранить этот env.ts в чем-то вроде S3, а затем перетащить его в конвейер для использоваться в облаке при сборке? Может быть, я мог бы загрузить этот файл как-то в buildspe c? Вот мой текущий buildspe c для справки:
version: 0.2
phases:
install:
commands:
- echo installing packages...
- npm install --global yarn
- yarn install
# <-- load in env.ts file here somehow?
build:
commands:
- echo running tests...
- yarn jest
- echo building...
- yarn build
artifacts:
files:
- $CODEBUILD_SRC_DIR/dist/prod/*