你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

查看预生产环境中的拉取请求

本文演示了如何使用预生产环境查看对使用 Azure Static Web Apps 部署的应用程序所做的更改。 预生产环境是应用程序的功能齐全的暂存版本,其中包含生产中不可用的更改。

注意

Azure DevOps 不会自动支持拉取请求环境,但可以使用 命名环境 手动设置它们。

Azure 静态Web 应用在存储库中生成 YAML 工作流。 当针对工作流监视的分支创建拉取请求时,就生成了预生产环境。 预生产环境会暂存应用,所以能在将更改推送到生产环境之前对其进行查看。 预生产环境的生命周期与拉取请求相关联。 关闭拉取请求后,将自动删除预生产环境。

可以在预生产环境中执行以下任务:

  • 直观地查看生产环境与暂存环境之间的更改,例如内容和布局的更新
  • 演示对团队所做的更改
  • 比较不同版本的应用程序
  • 使用验收测试验证更改
  • 在部署到生产环境之前执行健全性检查

先决条件

做出更改

直接在 GitHub 上更改存储库,如以下步骤所示。

  1. 在 GitHub 上转到项目的存储库,然后选择“分支”

    Create new branch using GitHub interface

  2. 键入分支名称,然后选择“创建分支”

  3. 转到“应用”文件夹并更改某些文本内容,例如标题或段落。 选择“编辑”以在文件中进行更改

    Edit file button in GitHub interface

  4. 完成后,选择“提交更改”

    Screenshot showing the Commit changes button in the GitHub interface.

创建拉取请求

创建拉取请求以发布更新。

  1. 在 GitHub 上打开项目的“拉取请求”选项卡

    Screenshot showing the pull request tab in a GitHub repo.

  2. 选择“比较”和“拉取请求”。

  3. (可选)输入有关更改的详细信息,然后选择“创建拉取请求”

    Screenshot showing the pull request creation in GitHub.

如果需要,可以分配审阅者并添加注释以讨论所做的更改。

使用 Azure Static Web Apps 时,可以同时存在多个预生产环境。 每次针对受监视的分支创建拉取请求时,包含更改的暂存版本都将部署到不同的预生产环境中。

可以进行多次更改并将新的提交推送到分支。 拉取请求会自动更新以反映所有更改。

查看更改

GitHub Actions 部署工作流运行,并将拉取请求更改部署到预生产环境。

工作流完成应用的生成和部署后,GitHub 机器人会向拉取请求添加注释,其中包含预生产环境的 URL。

  1. 选择预生产 URL 以查看暂存更改。

    Screenshot of pull request comment with the pre-production URL.

    URL 是通过类似以下内容的格式构成的:https://<SUBDOMAIN-PULL_REQUEST_ID>.<AZURE_REGION>.azurestaticapps.net。 给定的拉取请求的 URL 将保持不变,即使推送新的更新也是如此。 在拉取请求的整个生命周期内,同一预生产环境也会重复使用。

若要通过端到端测试自动执行评审过程,用于部署 Azure Static Web Apps 的 GitHub 操作应具有 static_web_app_url 输出变量。 可以在工作流的其余部分引用此 URL,以针对预生产环境运行测试。

发布更改

合并拉取请求以发布到生产环境。

  1. 选择“合并拉取请求”。

    Screenshot showing the Merge pull request button in GitHub interface.

    更改将复制到跟踪的分支(“生产”分支)。 随后,在跟踪的分支上启动部署工作流,更改在应用程序重新生成后就会生效。

  2. 打开生产 URL,加载网站的实时版本并进行验证。

限制

  • 任何人都可以通过其 URL 访问应用程序的暂存版本(即使 GitHub 存储库为专用存储库)。

    警告

    请注意敏感内容,因为任何人都可以访问预生产环境。

  • 使用 Static Web Apps 部署的每个应用的预生产环境数量是根据托管计划确定的。 例如,若使用免费层,生产环境附带的是三个预生产环境。

  • 预生产环境不是地理分布式的。

  • 只有 GitHub Actions 部署支持预生产环境。

后续步骤