我有一个Github仓库,想要将其推送到Heroku节点上。第三方主机将协调此操作。由于我将大规模地进行此操作,因此希望避免将存储库的内容下载到第三方主机上。我该怎么做?
你不能直接从Github推送到Heroku。
你需要使用第三方主机协调推送。这可以通过Github的post-receive hook来完成。
要直接同步,请使用类似以下的内容:
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
git push heroku master
。 - Patrick FisherCodeship.io 现在作为一项服务提供此功能,并自动配置公共或私有 github 存储库上的适当 git webhooks。
还有一些其他的“连续集成即服务”(CIAAS)选项,但总体而言,它们解决了你所特别提出的问题:web hooks 需要命中第三方服务,这将触发 heroku 构建流程。
这些 CIAAS 主机充当第三方,通常为公共项目提供免费层次。您也可以通过部署接收 web hook 的服务器来自己创建,该服务器可以拉取和推送 git 存储库。
我认为你不能直接从GitHub推送到另一个远程仓库。
因此,如果您有许多应用程序要推送,可以考虑使用子模块的组织,就像在这个SO问题中所示。
您仍然需要下载一个仓库才能将其推送到Heroku节点上,但至少您可以控制要拉取/推送的内容(并在每次推送之间进行一些清理)。
https://devcenter.heroku.com/articles/github-integration
整个流程管道非常强大,可以基于分支创建临时实例,多个应用程序部署,从暂存到生产的推广等。更多信息可以在Heroku的概述文章中找到。