Github上Azure/ARM-Deploy Action因Bicep新版本提示失败的咨询
解决GitHub托管代理上Bicep版本提示导致azure/arm-deploy失败的方案
针对你遇到的Bicep版本提示输出到stderr触发azure/arm-deploy Action失败的问题,以下是几个可行的解决方案:
方案1:禁用Bicep版本检查(最简便)
Bicep支持通过环境变量关闭版本更新检查,这样就不会输出新版本提示到stderr。只需在部署步骤前添加环境变量设置:
- name: 禁用Bicep版本检查 run: echo "BICEP_DISABLE_VERSION_CHECK=true" >> $GITHUB_ENV - name: 部署Bicep模板 uses: azure/arm-deploy@v1 with: resourceGroupName: <你的资源组名称> template: ./main.bicep # 按需添加其他部署参数,如parameters、mode等
方案2:强制使用指定版本的Bicep
如果需要固定Bicep版本,可在流水线中手动安装目标版本,并让系统优先使用该版本(覆盖代理自带的旧版本):
- name: 安装指定版本的Bicep run: | # 替换为你需要的Bicep版本 BICEP_VERSION="0.14.46" # 下载对应平台的Bicep二进制文件(这里以Linux代理为例) curl -Lo bicep https://github.com/Azure/bicep/releases/download/v${BICEP_VERSION}/bicep-linux-x64 # 添加执行权限 chmod +x ./bicep # 将当前目录加入PATH最前端,确保优先使用手动安装的版本 echo "$(pwd)" >> $GITHUB_PATH - name: 验证Bicep版本 run: bicep --version - name: 部署Bicep模板 uses: azure/arm-deploy@v1 with: resourceGroupName: <你的资源组名称> template: ./main.bicep
方案3:过滤Bicep的stderr输出(适合需保留版本检查但过滤提示的场景)
如果不想禁用版本检查,可手动调用Azure CLI部署命令,过滤掉版本提示信息,仅保留真正的错误输出:
- name: 部署Bicep模板并过滤版本提示 run: | # 执行部署,将stderr中的版本提示过滤掉 az deployment group create \ --resource-group <你的资源组名称> \ --template-file ./main.bicep \ 2>&1 | grep -v "A new Bicep version is available" > >(tee stdout.log) 2> >(tee stderr.log >&2) # 检查是否存在真正的部署错误 if grep -qi "error:" stderr.log; then exit 1 fi
内容的提问来源于stack exchange,提问作者Thomas Houtekier
相关产品推荐
相关产品推荐

