繁体   English   中英

如何使用Hubot将Github存储库部署到Heroku?

[英]How to use Hubot to deploy a Github repo to Heroku?

当他们宣布 Hubot时,GitHub说他们对他们做的事情之一是部署。 我正在尝试为我的项目执行相同的操作,其代码在GitHub上托管,而应用程序本身在Heroku上。 我的Hubot也住在Heroku上,但我首先在本地进行测试。

我的想法是在tmp中克隆目标repo,在该repo中添加一个遥控器指向Heroku应用程序,然后运行git push heroku或(像这样的SO问题 )创建两个遥控器并按此方式push 当我尝试运行时,我已经让git clone在本地工作了

Exec "cd #{dir}; git remote add #{proj_loc} git@heroku.com:#{heroku_app}.git"

它最终将远程添加到git bin/hubotbin/hubot存在于我启动bin/hubot的目录中,而不是现在存在于tmp中的git bin/hubot 我知道dir设置正确并且cd工作因为我已经运行了

Exec "cd #{dir}; pwd"

结果是我所期待的。 所以git remote的行为让我很困惑。

有没有人做过这样的事情,或者至少可以告诉我为什么git remote不会将遥控器添加到tmp中的temp以及如何修复它?

我还要尝试解决1)访问GitHub上的私人仓库所需的密钥问题; 2)部署到Heroku。 我会弄明白,如果我能让这个工作。

我用我的系统做了这个。 我让我的hubot通过SSH联系我的构建盒并运行git pull / deploy命令。 deploy命令会将POST有效负载发送回hubot实例,并将所有状态发布到hubot的聊天客户端。 我写了一篇关于它的完整博客文章: http//tritarget.org/blog/2014/10/13/new-site-ship-it/

当我听到Github如何使用Hubot时,我也是这么认为的。 但有人猜测,他们将它托管在他们管理的机器上,比如物理或VPS,在部署代码时更像是本地机器。 虽然你可能会在Heroku上工作,但我认为你会在使用密钥和实际部署时遇到困难 - 但我很容易被证明是错误的:)

我创建了一个可能做你想要的Java / Play Framework应用程序:
https://github.com/heroku/shareheroku-java

该应用程序执行以下操作:

  1. 克隆(或更新)来自git url的git repo
  2. 为现有Heroku用户创建新的ssh密钥
  3. 将密钥添加到用户的帐户
  4. 在Heroku上创建一款新应用
  5. 将克隆的应用程序推送到Heroku
  6. 添加另一个用户作为协作者
  7. 将所有权转让给用户
  8. 从应用中删除原始用户
  9. 从原始用户删除ssh密钥

您可以在以下位置看到它:
http://java.herokuapp.com

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM