【问题标题】:How to use Hubot to deploy a Github repo to Heroku?如何使用 Hubot 将 Github 存储库部署到 Heroku?
【发布时间】:2012-01-20 18:54:10
【问题描述】:

回到他们announcedHubot 时,GitHub 说他们对他们所做的事情之一就是部署。我正在尝试对我的项目执行相同的操作,该项目的代码托管在 GitHub 上,而应用程序本身位于 Heroku 上。我的 Hubot 也在 Heroku 上,但我首先在本地进行所有测试。

我的想法是在 tmp 中克隆目标 repo,在该 repo 中添加一个遥控器以指向 Heroku 应用程序,然后运行 ​​git push heroku 或(如 this SO question)创建两个遥控器和 push 这样。当我尝试运行时,我已经让 git clone 在本地工作

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

它最终将远程添加到存在于我开始 bin/hubot 的目录中的 git 存储库中,而不是现在存在于 tmp 中的 git 存储库。我知道 dir 设置正确,并且 cd 有效,因为我已经运行了

Exec "cd #{dir}; pwd"

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

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

我还没有尝试解决 1) 访问 GitHub 上的私有存储库所需的密钥问题;和 2) 部署到 Heroku。我会弄清楚如果我能做到这一点。

【问题讨论】:

    标签: node.js heroku github


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我创建了一个 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

      【讨论】:

        【解决方案3】:

        当我听说 Github 如何使用 Hubot 时,我也是这么想的。不过,猜测一下,他们将其托管在他们管理的机器上,例如物理或 VPS,在部署代码时更像是本地机器。虽然你可能会在 Heroku 上工作,但我认为你会在密钥和实际部署方面遇到困难 - 但我愿意被证明是错误的 :)

        【讨论】:

          猜你喜欢
          • 2020-04-11
          • 2013-07-07
          • 2020-01-15
          • 2017-11-06
          • 1970-01-01
          • 2020-06-02
          • 2019-09-21
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多