You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

删除Azure DevOps源分支时自动清理Azure静态Web应用分支预览环境

解决Azure DevOps分支删除后自动清理Static Web App预览环境的方案

实现思路

通过Azure DevOps的分支删除触发器触发专用流水线,结合Azure CLI执行环境删除命令,实现分支删除与预览环境清理的自动化联动。

具体步骤

  1. 创建专用清理流水线
    在Azure DevOps中新建流水线,配置分支删除触发器,监控除主分支外的所有分支删除操作:
trigger:
  branches:
    exclude:
      - main  # 排除生产分支,避免误操作
    delete: true  # 启用分支删除触发规则
  1. 添加Azure CLI清理任务
    为流水线添加Azure CLI任务,利用DevOps内置变量获取被删除分支名,匹配Static Web App自动生成的预览环境命名规则,执行删除命令:
pool:
  vmImage: 'ubuntu-latest'

steps:
  - task: AzureCLI@2
    inputs:
      azureSubscription: '你的Azure服务连接名称'  # 替换为实际服务连接
      scriptType: 'bash'
      scriptLocation: 'inlineScript'
      inlineScript: |
        # 转换分支名为小写,匹配Static Web App环境命名规则
        BRANCH_NAME=$(echo "$BUILD_SOURCEBRANCHNAME" | tr '[:upper:]' '[:lower:]')
        # 生成对应预览环境名称(默认规则为env-分支名)
        ENV_NAME="env-$BRANCH_NAME"
        
        # 执行环境删除命令,--yes参数跳过确认
        az staticwebapp environment delete --name '你的静态Web应用名称' \
          --environment-name "$ENV_NAME" --subscription '你的订阅ID/名称' \
          --yes
  1. 权限配置
    确保Azure DevOps使用的服务连接对应的服务主体,拥有目标Static Web App的环境删除权限,最简单的方式是给服务主体分配该Static Web App的参与者角色。

关键注意点

  • 预览环境命名规则:Static Web App自动创建的分支预览环境默认格式为env-小写分支名,若分支名含特殊字符会被替换为-,需确保脚本中的ENV_NAME与实际环境名一致
  • 避免误删:务必在触发器中排除生产分支(如main),防止生产环境被意外清理

内容的提问来源于stack exchange,提问作者Markus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 19:45:40