从 github 推送到 heroku,无需下载 repo
Posted
技术标签:
【中文标题】从 github 推送到 heroku,无需下载 repo【英文标题】:Push from github to heroku without downloading repo 【发布时间】:2011-03-20 11:16:36 【问题描述】:我有一个 github 存储库,我想将其推送到 heroku 节点。第三位主持人将对此进行协调。由于我将大规模执行此操作,因此我想避免将 repo 的内容下载到第三台主机上。我该怎么做?
【问题讨论】:
Heroku 现在支持此功能 - 请参阅 devcenter.heroku.com/articles/github-integration 【参考方案1】:我认为你不能直接从 GitHub 推送到另一个远程仓库。
因此,如果您有很多应用要推送,您可以考虑使用子模块的组织,like in this SO question。
您仍然需要下载一个 repo 才能将其推送到 Heroku 节点,但至少您可以控制要拉/推的内容(并在每次推送之间进行一些清理)。
【讨论】:
我实际上并不是应用程序的所有者(我正在构建基于云的服务),因此我无法控制它们的组织方式。【参考方案2】:你不能直接从 Github 推送到 Heroku。
您将不得不使用第三台主机来协调推送。这可以从 Github 的 post-receive 钩子中触发。
要直接同步使用类似的东西:
git remote add github git@github.com:user/repo.git
git remote add heroku git@heroku.com:app.git
git push heroku refs/remotes/github/master:refs/heads/master
【讨论】:
我已经搞定了。看起来确实没有任何方法可以避免在第三台主机上使用文件系统:( 不是我要找的答案,但可能对查看这个问题的人最有用。 我采用了更简单的设置:创建一个 github 存储库,将其克隆到本地,将 heroku 添加为远程,然后只需git push heroku master
。【参考方案3】:
Codeship.io 现在将其作为服务执行,并自动在公共或私有 github 存储库上配置适当的 git webhooks。
还有其他一些“持续集成即服务”(CIAAS) 选项,但总的来说,它们可以解决您特别提出的问题:网络挂钩需要访问 3rd 方服务,而后者反过来可以触发heroku构建过程。
这些 CIAAS 主机充当第 3 方,通常为公共项目提供免费层。你也可以自己部署一个 web hook 接收服务器,它可以 pull 和 push git repos。
【讨论】:
Codeship 实际上对 5 个私有仓库是免费的;每月最多 100 次部署。我可能会尝试一下。 其实我不是;他们不支持 Python 3.x。但仍然非常酷。【参考方案4】:在我之前回答 codeship.io 大约一年后,Heroku 启动了他们的 Pipeline 功能集的开始,其中包括适当的 Github 集成。
https://devcenter.heroku.com/articles/github-integration
整个管道流程真的很强大,允许基于分支的临时实例、多个应用部署、staging->生产推广等。更多信息可以在Heroku的overview article找到。
【讨论】:
以上是关于从 github 推送到 heroku,无需下载 repo的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Vapor 将 swift 包推送到 Heroku
如何更新堆栈并将克隆的应用程序推送到 Heroku [重复]