来自非master的Heroku-Github Auto Deploy(仅查看master分支)

时间:2015-11-09 21:55:00

标签: heroku

[仅供参考 - 我不打算将我们的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)?

最终,计划是设置某种形式的持续集成,并在发布 - 生产区域发布之前进行测试。

我是否过度思考这个问题,还是有更好的办法来解决这个问题?欣赏它!

2 个答案:

答案 0 :(得分:0)

我认为Heroku上的自动部署仅适用于默认分支(通常命名为master),您可能希望查看名为pipelines的Heroku功能。我自己还没有使用它,它处于测试阶段,但听起来就像你正在寻找的那样。不确定我是否正确阅读,但听起来你创建了3个单独的项目,而不是1个项目中的分支?您如何管理从一个阶段到另一个阶段的移动变化?

对于CI设置,我想这取决于您正在进行的测试类型和工作流程。我正在我的工作场所创建这样的流程,我将提出的建议如下:

  • Devs在提交并合并到DEV分支
  • 之前,在功能分支上的本地机器上开发和测试
  • 提交或合并到DEV分支触发CI服务器,运行构建并执行PHPUnit和Behat测试
  • 正在将成功构建部署到服务器(可能是Heroku或任何支持自动部署的托管服务提供商)进行质量检查。
  • 一旦经过测试和批准,我们就可以将代码移到STAGING分支重复CI过程中,并成功转移到MASTER并上线。

我们正在使用gilab.com来托管我们的项目并执行测试(即使使用免费帐户也将CI服务器作为标准包含在内),将QA的开发和暂存状态部署到Heroku,最后使用专用的企业级托管实时版本提供商。

答案 1 :(得分:0)

Heroku仅跟踪主分支上的更改。

要推送到Heroku主分支,无论您的本地分支是什么,您可以执行以下操作: git push dev release:master (我没有包含' auto'因为我不知道它做了什么。