是否可以在 Heruku 帐户之间的 circleci 中分离环境?
Posted
技术标签:
【中文标题】是否可以在 Heruku 帐户之间的 circleci 中分离环境?【英文标题】:Is it possible to separate environments in circleci between Heruku accounts? 【发布时间】:2021-09-15 13:48:49 【问题描述】:我的主要想法是有两个独立的环境——一个用于production
,一个用于staging
。
为此,我在 Heroku 上创建了两个 repo(我不确定是否可以使用一个 repo)
version: 2.1
jobs:
heroku/deploy-via-git:
docker:
- image: circleci/node:10.16.3
steps:
- checkout
- run:
name: build-dev-step
command: echo $HEROKU_APP_NAME "This is Heroku env variable"
setting_development_variables:
docker:
- image: circleci/node:10.16.3
environment:
HEROKU_APP_NAME: ****
steps:
- checkout
- run:
name: setting-variables-command
command: echo "Heroku env variables are set"
setting_production_variables:
docker:
- image: circleci/node:10.16.3
environment:
HEROKU_APP_NAME: ***2***
NODE_ENV: production
steps:
- checkout
- run:
name: setting-variables-command
command: echo "Heroku env variables are set"
orbs:
heroku: circleci/heroku@0.0.10
workflows:
production:
jobs:
- setting_production_variables:
filters:
branches:
only:
- main
- heroku/deploy-via-git:
requires:
- setting_production_variables
filters:
branches:
only:
- main
development:
jobs:
- setting_development_variables:
filters:
branches:
only:
- staging
- heroku/deploy-via-git:
requires:
- setting_development_variables
filters:
branches:
only:
- staging
在这里你可以看到我是如何让它为我工作的,但似乎我无法在那里设置任何环境,HEROKU_APP_NAME
和 NODE_ENV
都没有。
对于生产,当我在项目设置中设置环境变量时,它对我来说很好。但是当我尝试在配置文件中设置它时它不想工作。
我在这里做错了什么,它不想为我设置环境变量? 或者也许有更好的方法来区分 Heroku 和 CircleCI 之间的模式?
编辑:
据我所知,NODE_ENV
变量我应该通过 CircleCI 命令设置在 Heroku 的一侧,对吗?不是我在这里设置的方式
【问题讨论】:
【参考方案1】:如果有人遇到同样的情况,我就是这样解决的
version: 2.1
orbs:
heroku: circleci/heroku@0.0.10
workflows:
production:
jobs:
- heroku/deploy-via-git:
filters:
branches:
only:
- main
app-name: here goes your app name for production
development:
jobs:
- heroku/deploy-via-git:
filters:
branches:
only:
- staging
app-name: here goes your app name for development
【讨论】:
以上是关于是否可以在 Heruku 帐户之间的 circleci 中分离环境?的主要内容,如果未能解决你的问题,请参考以下文章