如果您启用了自动发布,则每次向 GitHub 代码库中的 正式版分支推送新提交时,App Hosting都会自动发布应用的新版本。您可以在 Firebase控制台或 App Hosting GitHub 检查中查看发布状态。
此外,App Hosting 还支持手动触发发布,以便进行 CI/CD 集成或在您想要强制发布时使用。
查看发布
您可以通过 Firebase 控制台访问有关应用的所有 发布的详细信息。
依次前往 托管和无服务器> App Hosting, 然后选择要查看其发布的后端对应的查看。后端的发布 标签页会显示一个表格,其中列出了此后端的所有发布的历史记录。
每个发布条目都包含指向 Cloud Build 作业和 触发发布的更改或提交的链接,以及有关发布作者、创建日期和状态的基本信息 。
- Cloud Build 作业是 App Hosting 在其中运行 应用构建命令的构建环境。您可以点击 build ID 来访问 Cloud Build 日志。
- 更改 是触发发布的 GitHub 提交或其他操作。
手动触发发布
如果您想要从 GitHub 来源手动触发发布,而无需 推送新提交,则可以通过 Firebase 控制台或 Firebase CLI 创建发布。这对于以下情况非常有用:
- 强制重新生成静态内容。
- 允许 CI/CD 系统触发发布。
- 将正式版发布限制为特定日期或时间。
如需在 Firebase 控制台中触发发布,请执行以下操作:
- 在 Firebase 控制台中,依次前往 托管和无服务器 > App Hosting。
- 点击要为其创建发布的后端对应的查看 。
- 在后端信息中心摘要中,选择创建发布 。
- 选择要部署的分支。
- 选择要部署的提交,可以是最新提交,也可以是提交 ID 指定的较早提交。
- 选择创建 。发布历史记录表格中会显示发布的状态和 build 号。发布过程完成后,此发布会显示为当前发布。
如需在 Firebase CLI 中触发发布,请运行以下命令,并在系统提示时 选择发布的分支:
firebase apphosting:rollouts:create BACKEND_ID
或者,您也可以使用 --git-branch 选项为特定分支的最新提交启动发布:
firebase apphosting:rollouts:create BACKEND_ID
--git_branch BRANCH_NAME
您还可以使用 --git-commit 选项创建包含特定提交的发布:
firebase apphosting:rollouts:create BACKEND_ID
--git_commit COMMIT_ID
恢复之前的发布
App Hosting 提供了两种恢复之前发布的方式:
- 即时回滚,无需重新构建
- 重新构建并回滚到之前的版本
创建即时回滚
有时,您可能需要快速恢复到应用的旧版本,例如,如果您在新部署的发布中发现严重 bug,或者遇到导致新发布受阻的不稳定 build。在这种情况下,您可以从之前的发布中恢复所选的现有容器映像。此映像不会重新构建,而是使用首次构建时的代码和环境配置。
如需创建即时回滚,请执行以下操作:
- 在 Firebase 控制台中,依次前往 托管和无服务器 > App Hosting。
- 点击要为其创建回滚的后端对应的查看 。
- 选择发布 标签页。
- 在后端的历史记录 表格中,选择之前 build 对应的三点状菜单。
- 选择回滚到此 build 并确认。
重新构建并回滚
如果您想要恢复到应用的旧版本,但仍保留当前配置,则可以在回滚过程中重新构建应用。例如,如果最新版本更新了 Secret Manager 中的 API 密钥值,则重新构建可以确保在回滚后应用中使用新密钥。
如需重新构建并回滚,请执行以下操作:
- 在 Firebase 控制台中,依次前往 托管和无服务器 > App Hosting。
- 点击要为其创建回滚的后端对应的查看信息中心 。
- 选择发布 标签页。
- 选择创建发布 。
- 在创建发布 对话框中,选择较早提交 ,然后输入要重新构建并回滚到的版本的提交 ID。提交 ID 是发布历史记录 中列出的每个发布的“更改详情”的一部分,包含在标签中的括号内。
- 选择创建 以开始回滚。
更改发布设置
您可以使用后端信息中心的设置 > 部署 视图中的控件更改发布的正式版分支,以及停用或启用自动发布。
- 在 Firebase 控制台中,依次前往 托管和无服务器 > App Hosting。
- 点击要更新发布设置的后端对应的查看 。
- 在后端信息中心内,选择设置 。默认视图会显示有关网域和自定义网域的信息。
- 选择部署 视图。在此视图中,您可以更改发布的正式版分支,以及停用或启用自动发布。此外, 您还可以设置应用根目录和 后端的环境(请参阅 部署到多个环境)。