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

如何在GitHub Actions中判断Web App已存在时跳过预配并提示

优化GitHub Actions流程:添加Web App存在性判断

实现思路

通过Azure CLI检查目标Web App是否存在,根据检查结果决定是否执行Bicep预配步骤,同时给出明确提示。

修改后的GitHub Actions流程

# Download the bicep templates from previous job
- name: Download artifact from build job
  uses: actions/download-artifact@v4
  with:
    name: bicep-template
    path: bicep-template

# Login in your azure subscription using a service principal (credentials stored as GitHub Secret in repo)
- name: Azure Login
  uses: azure/login@v2
  with:
    creds: ${{ secrets.AZURE_CREDENTIALS }}

# 检查Web App是否存在
- name: Check if Web App exists
  id: check_webapp
  run: |
    az webapp show --name ${{ env.WEBAPP-NAME }} --resource-group ${{ env.RESOURCE-GROUP }} --subscription ${{ env.SUBSCRIPTION-ID }}
    if [ $? -eq 0 ]; then
      echo "webapp_exists=true" >> $GITHUB_OUTPUT
    else
      echo "webapp_exists=false" >> $GITHUB_OUTPUT
    fi
  continue-on-error: true

# 仅当Web App不存在时执行预配
- name: Deploy Azure WebApp using Bicep file
  if: steps.check_webapp.outputs.webapp_exists == 'false'
  uses: azure/arm-deploy@v2
  with:
    subscriptionId: ${{ env.SUBSCRIPTION-ID }}
    resourceGroupName: ${{ env.RESOURCE-GROUP }}
    template: bicep-template/webapp.bicep
    parameters: 'webAppName=${{ env.WEBAPP-NAME }} location=${{ env.LOCATION }}'
    failOnStdErr: false

# Web App已存在时提示并跳过预配
- name: Notify Web App exists
  if: steps.check_webapp.outputs.webapp_exists == 'true'
  run: echo "应用已存在,跳过预配直接进入部署阶段"

# 后续部署应用代码的步骤(示例)
# - name: Deploy app code
#   run: ...

关键说明

  • continue-on-error: true 确保即使Web App不存在(CLI命令返回非0),流程也能继续执行后续判断
  • 通过id: check_webapp标记检查步骤,后续步骤使用steps.check_webapp.outputs.webapp_exists获取检查结果
  • 条件判断if: steps.check_webapp.outputs.webapp_exists == 'false'控制Bicep预配步骤仅在Web App不存在时运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 15:53:24