截至2020 年 4 月,Heroku 已经在本地集成了 GitHub,而无需求助于任何乱七八糟的无证冰岛端点。
配置后,Heroku 可以自动构建和发布(如果构建成功)推送到指定的 GitHub 存储库。
启用 GitHub 集成
您可以在Heroku 仪表板Deploy
的应用程序选项卡中配置 GitHub 集成。
![启用 GitHub 集成 启用 GitHub 集成](https://devcenter1.assets.heroku.com/article-images/2349-imported-1443570588-2349-imported-1443555058-421-original.jpg)
要配置 GitHub 集成,您必须使用 GitHub 进行身份验证。每个 Heroku 帐户只需执行一次此操作。
您需要 GitHub 存储库管理员访问权限才能配置自动 GitHub 部署。这是因为 Heroku 必须在 GitHub 存储库上注册一个服务挂钩,并且此操作需要管理员访问权限。对于 GitHub 组织,您的 GitHub 帐户还需要是该组织的成员,而不是外部合作者。
如果您的存储库位于启用了第三方应用程序限制的 GitHub 组织中,则组织管理员需要批准 Heroku 才能与该组织一起使用。更多详细信息可在 GitHub 上找到。
将 Heroku 应用程序链接到 GitHub 存储库后,您可以有选择地从分支部署或配置自动部署。
手动部署
通过手动部署,您可以从连接到您的应用程序的 GitHub 存储库中创建任何分支的即时部署。如果您想控制何时将更改部署到 Heroku,请使用手动部署。
![手动部署 手动部署](https://devcenter1.assets.heroku.com/article-images/2349-imported-1443570589-2349-imported-1443555058-422-original.jpg)
您还可以使用手动部署来临时部署除为自动部署配置的分支之外的分支。例如,您可能有一个开发应用程序同步到development
GitHub 分支,但您暂时想要测试一个功能分支。只需触发功能分支的手动部署,即可在 Heroku 应用程序上对其进行测试。请注意,功能分支的发布将在下一次成功的 GitHub 推送到该development
分支时被覆盖。
自动部署
当您为 GitHub 分支启用自动部署时,Heroku 会构建并将所有推送部署到该分支。例如,如果您在 Heroku 上有一个开发应用程序,您可以配置推送到您的 GitHub
development
分支以自动构建并部署到该应用程序。
![自动部署 自动部署](https://devcenter3.assets.heroku.com/article-images/2349-imported-1443570589-2349-imported-1443555058-423-original.jpg)
如果您已将 GitHub 存储库配置为使用自动持续集成(例如使用 Travis CI),则可以选中“在部署前等待 CI 通过”复选框。启用后,Heroku 只会在相关提交 show 的所有提交状态后自动部署
success
。
此提交不会自动部署,因为其中一项检查显示
pending
状态:![提交状态失败 - 不会自动部署](https://devcenter3.assets.heroku.com/article-images/1516299367-Screen-Shot-2018-01-18-at-9.35.09-AM.png)
此提交将自动部署,因为所有检查都显示以下状态
success
:![成功提交状态 - 将自动部署](https://devcenter0.assets.heroku.com/article-images/1516299538-Screen-Shot-2018-01-18-at-10.12.16-AM.png)
审查应用程序
为 Heroku 应用启用审查应用后,Heroku 将为在连接到父应用的 GitHub 存储库上打开的每个拉取请求创建临时测试应用。如果您使用
GitHub Flow来提议、讨论和合并对代码库的更改,那么审查应用程序非常棒。因为拉取请求分支部署到 Heroku 上的新应用程序,所以您和您的协作者可以非常简单地测试和调试代码分支。您还可以在代表 GitHub 分支的 Heroku 应用程序上运行自动化集成测试。
有关详细信息,请参阅查看应用程序文章
。
Heroku CI
将 GitHub 存储库连接到 Pipeline 后,您可以打开
Heroku CI,这是我们的可视化、低配置测试运行程序,可轻松与 Heroku Pipelines 集成(因此补充了 Review 应用程序、现有 Heroku 应用程序和我们的 GitHub 集成)。任何 Heroku Pipeline 都已准备好 Heroku CI – 只需在 Pipeline 的Settings
选项卡中打开它。
链接到差异
对于链接到 GitHub 存储库的应用程序,仪表板
Activity
选项卡中的版本将包含“查看差异”链接。点击链接将带您进入 GitHub 比较视图,显示自上次发布以来所做的更改。
![差异视图链接 差异视图链接](https://devcenter0.assets.heroku.com/article-images/2349-imported-1443570590-2349-imported-1443555059-411-original.jpg)
从 GitHub 断开连接
如有必要,终止过时的 GitHub 连接。
断开单个应用程序
可以在应用程序选项卡的 GitHub 窗格中断开单个应用程序的连接
Deploy
。
![断开应用程序 用于断开应用程序的 UI 屏幕截图](https://devcenter3.assets.heroku.com/article-images/2349-imported-1443570591-2349-imported-1443555059-434-original.jpg)
断开帐户
您可以在仪表板帐户页面的应用程序窗格中断开 Heroku 和 GitHub 帐户。
![用于断开帐户的 UI 屏幕截图](https://devcenter2.assets.heroku.com/article-images/1576871458-Screen-Shot-on-2019-12-20-at-11-50-08.png)