Итак, у меня в репо есть приложение реагировать / набирать текст, над которым я работаю, и в репо у меня есть файл .env, который я игнорирую, чтобы мои секреты не были раскрыты, и пример .envфайл важных переменных среды для настройки.Моя проблема в том, что я не помещаю файл .env в репозиторий, когда развертываю свое приложение с помощью google app engine (это делается на этапе развертывания в моем gitlab-ci.yml file), эти переменные среды не будут присутствовать в рабочей среде, и мне нужно, чтобы они работали в моем приложении, поскольку я делаю что-то подобное в моем файле webpack.config.js.
const dotenv = require('dotenv').config({ path: __dirname + '/.env' });
а затем
new webpack.DefinePlugin({
'process.env': dotenv.parsed
})
Вот мой файл .gitlab-ci для справки на случай, если кто-то здесь захочет увидеть.
cache:
paths:
- node_modules/
stages:
- build
- test
- deploy
Build_Site:
image: node:8-alpine
stage: build
script:
- npm install --progress=false
- npm run-script build
artifacts:
expire_in: 1 week
paths:
- build
Run_Tests:
image: node:8-alpine
stage: test
script:
- npm install --progress=false
- npm run-script test
Deploy_Production:
image: google/cloud-sdk:latest
stage: deploy
environment: Production
only:
- master
script:
- echo $DEPLOY_KEY_FILE_PRODUCTION > /tmp/$CI_PIPELINE_ID.json
- gcloud auth activate-service-account --key-file /tmp/$CI_PIPELINE_ID.json
- gcloud config set project $PROJECT_ID_PRODUCTION
- gcloud info
- gcloud --quiet app deploy
after_script:
- rm /tmp/$CI_PIPELINE_ID.json
Кроме того, не стесняйтесь критиковать мой gitlab-ci.ymlфайл, чтобы я мог сделать его лучше.