我正在使用连接到GitHub的Heroku Pipelines。
我有三种不同的环境:
- Reviews
(我的CI测试成功后,我的所有拉取请求都会自动部署到其中)
- Staging
(部署我的主分支)
- Production
(我的制作环境)
当我拉动并合并分支时,我的Review
个应用程序被创建和销毁。我的Staging
和Production
个应用始终相同。更新主分支后,Staging
会更新,然后我可以手动决定将该代码提升为Production
。
这太好了!除了我遇到app.json
文件的问题。
在开发新分支时,我经常使用新的heroku插件,即Redis数据库或新的监控工具。我这样做是通过更新我的app.json
文件来完成的。例如:
"addons": [
"logentries:le_tryit",
"newrelic:wayne",
{
"plan": "mongolab:sandbox",
"as": "MONGODB_URI"
},
{
"plan": "heroku-redis:hobby-dev",
"as": "REDIS_SESSIONS_URI"
}
]
创建拉取请求后,会在Reviews
中创建一个应用,我可以看到我的新插件。不幸的是,当我将我的分支与master合并时,app.json
似乎在我的Staging
环境中(以及随后在我的Production
环境中)再次运行。
有没有办法在现有的heroku应用程序中重新运行app.json
清单?并且每次新部署都能实现自动化吗?
如果没有,是否有原因?
谢谢!
答案 0 :(得分:2)
没有办法做你要问的事。仅在创建新的Heroku应用程序时解析app.json
,而不是在重新部署时使用。{1}}。原因是它可能会对生产应用程序造成不必要的副作用。
EG:如果从app.json
文件中删除一行并将其推送到现有的Heroku应用程序,会发生什么? Heroku应该删除您的插件(可能会破坏大量数据吗?)
相反,您应该做的是:当您剪切生产版本时,如果您需要使用新插件或更改它们,请通过CLI手动执行。
例如:
$ heroku addons:create heroku-redis