【问题标题】:Deploying every GitHub PR to separate Azure instances将每个 GitHub PR 部署到单独的 Azure 实例
【发布时间】:2021-01-05 15:55:44
【问题描述】:

我有一个具有不同分支的项目,每次从这些分支之一创建 PR 到 main 时,我都希望将该 PR 部署在 Azure 上。

我发现了类似的东西,但它仅适用于静态应用,但我的项目是动态的: https://docs.microsoft.com/en-us/azure/static-web-apps/review-publish-pull-requests

【问题讨论】:

  • github 并不关心它是静态的还是动态的,只需在 PR 上创建构建并强制构建
  • @4c74356b41 Github 不在乎,但 azure 会。我可以制作一个构建每个 PR 的构建管道,但我在发布管道方面遇到问题。我不知道如何动态地制作不同的应用服务或类似的东西。我需要它,因为 PR 的数量是动态的,我希望为每个新 PR 创建一个新实例。
  • 那是什么问题?在每个 PR 中创建一个应用服务并使用它来部署您的代码?
  • @4c74356b41 问题是我需要以编程方式创建一个新的应用服务。我不想为每个 PR 手动创建 App Service。
  • 那是什么问题?有很多方法可以做到这一点

标签: azure github deployment azure-devops devops


【解决方案1】:

https://devblogs.microsoft.com/devops/static-web-app-pr-workflow-for-azure-app-service-using-azure-devops/

这有

  • PullRequest 触发管道
  • 如果管道由 PullRequest 触发,则会创建一个暂存槽并部署应用程序。
  • 使用环境 URL 向 PullRequest 添加注释。

需要注意的一些关键事项:

// Slot name
   az webapp deployment slot create \
       --name $(webApp.name) \
       --resource-group $(webApp.resourceGroup) \
       --slot staging-pr-$(System.PullRequest.PullRequestId)
// Conditionals
and(succeeded(), eq(variables['Build.Reason'], 'PullRequest'))

由于您的 PR 在 GitHub 中,您可能需要对其进行一些调整,但原则保持不变。检查是否还填充了System.PullRequest.PullRequestId,它可能是根据docs。如果您愿意,也可以使用专用 AppService 代替插槽,但我会坚持使用插槽。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-25
    相关资源
    最近更新 更多