[仅供参考 - 我不打算将我们的Heroku帐户升级到Enterprise以利用应用程序分组。我们是一个小团队]
我是heroku应用程序的合作者。我的任务是为应用程序设置开发 - 生产环境,我对如何使用GitHub-Heroku集成指南正确设置Auto Deploy感到困惑。我已经获得了原始git仓库的管理员访问权限。
在制作应用中的“所有者”帐户中,我创建了两个单独的应用(开发和分段)。
现在,我有3个应用程序,我是以下的合作者:
(1)app.domain.com (2)app-dev.domain.com (3)app-staging.domain.com
我创建了3个指向3生成的heroku-git repos的遥控器:
活 开发 分期
我可以通过以下方式轻松推送到3个Heroku应用程序:
git push live master
git push dev master
git push staging master
但我想为开发应用程序设置自动部署。
我已将“auto”分支推送到dev并暂存远程。我的目的是让Heroku检测推送到该分支并“自动”部署代码。但是,heroku只会检测到推送到“主”分支。
git push dev release auto git push staging release auto
但是当我去管理Heroku开发应用程序时,我只看到自动部署部分中的“主”分支。我不应该也看到“自动”分支吗?我没有看到它的原因是因为我没有将auto作为ORIGINAL git repo上的远程分支推送?在这种情况下,我如何构建这些东西,因为代码存在于两个独立的环境中(Heroku repo和GitHub repo)?
最终,计划是设置某种形式的持续集成,并在发布 - 生产区域发布之前进行测试。
我是否过度思考这个问题,还是有更好的办法来解决这个问题?欣赏它!
答案 0 :(得分:0)
我认为Heroku上的自动部署仅适用于默认分支(通常命名为master),您可能希望查看名为pipelines的Heroku功能。我自己还没有使用它,它处于测试阶段,但听起来就像你正在寻找的那样。不确定我是否正确阅读,但听起来你创建了3个单独的项目,而不是1个项目中的分支?您如何管理从一个阶段到另一个阶段的移动变化?
对于CI设置,我想这取决于您正在进行的测试类型和工作流程。我正在我的工作场所创建这样的流程,我将提出的建议如下:
我们正在使用gilab.com来托管我们的项目并执行测试(即使使用免费帐户也将CI服务器作为标准包含在内),将QA的开发和暂存状态部署到Heroku,最后使用专用的企业级托管实时版本提供商。
答案 1 :(得分:0)
Heroku仅跟踪主分支上的更改。
要推送到Heroku主分支,无论您的本地分支是什么,您可以执行以下操作:
git push dev release:master
(我没有包含' auto'因为我不知道它做了什么。