如何在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
相关产品推荐
相关产品推荐

