У меня есть простой файл .gitlab-ci.yml, который создает мое приложение Vue. Я собираю один раз, а затем развертываю папку dist
в различных средах:
stages:
- build
- deploy_dev
- deploy_stg
- deploy_prd
build:
image: node:latest # Pull Node image
stage: build
script:
- npm install -g @vue/cli@latest
- npm install
- npm run build
artifacts:
expire_in: 2 weeks
paths:
- dist/
deploy_to_dev:
image: python:latest
stage: deploy_dev
dependencies:
- build
only:
- master # Only deply master branch automatically to Dev
script:
- export AWS_ACCESS_KEY_ID=$DEV_AWS_ACCESS_ID
- export AWS_SECRET_ACCESS_KEY=$DEV_AWS_ACCESS_KEY
- pip install awscli # Install AWS CLI
- aws s3 sync ./dist s3://$DEV_BUCKET
Все это прекрасно работает, однако я сейчас ввел некоторую конфигурацию и строю свое приложение по-разному для каждой среды - для 3 сред У меня есть 3 разные команды сборки. Например, у меня есть .env.production
, поэтому для производственной сборки моя команда выглядит так:
npm run build -- --mode production
Есть ли способ обойтись, если для каждой среды используются разные сборки, но при этом все еще используются файлы .env, основанные на GitLab? переменная