如何在Azure Pipelines中安装运行Bazel?配置报错求助
在Azure DevOps Windows流水线中安装并运行Bazel 0.26.0的解决方案
你遇到的问题很典型——Windows-2019的Azure DevOps虚拟机镜像默认并没有预装Bazel,所以直接调用bazel命令会报错找不到程序。下面给你两种可靠的解决方法,直接修改你的YAML流水线配置就能搞定:
方法一:用Chocolatey快速安装(推荐)
Windows-2019镜像自带Chocolatey包管理器,用它安装指定版本的Bazel非常方便,还能自动处理依赖:
修改后的完整流水线YAML:
trigger: - master pool: vmImage: 'windows-2019' steps: - script: echo Hello, world! displayName: 'Run a one-line script' - script: | # 安装Bazel 0.26.0版本,--confirm自动跳过交互确认 choco install bazel --version=0.26.0 --confirm # 刷新环境变量,让当前Cmd会话能立刻找到bazel命令 refreshenv displayName: 'Install Bazel 0.26.0 via Chocolatey' - script: | bazel version echo Add other tasks to build, test, and deploy your project. displayName: 'Verify Bazel installation and run commands'
关键细节:
--version=0.26.0确保安装的是你需要的特定版本,避免自动升级到最新版refreshenv是Chocolatey提供的命令,用来刷新当前会话的环境变量——因为安装完Bazel后,系统环境变量会更新,但当前Cmd窗口不会自动加载新变量,必须手动刷新才能直接用bazel命令
方法二:手动下载MSI安装包安装
如果Chocolatey安装遇到版本缺失的情况(虽然0.26.0大概率没问题),可以直接从官方发布页下载MSI安装包静默安装:
trigger: - master pool: vmImage: 'windows-2019' steps: - script: echo Hello, world! displayName: 'Run a one-line script' - script: | # 用PowerShell下载Bazel 0.26.0的Windows安装包 powershell -Command "(New-Object Net.WebClient).DownloadFile('https://github.com/bazelbuild/bazel/releases/download/0.26.0/bazel-0.26.0-windows-x86_64.msi', 'bazel.msi')" # 静默安装MSI包,/quiet参数避免弹出安装界面 msiexec /i bazel.msi /quiet # 同样需要刷新环境变量 refreshenv displayName: 'Install Bazel 0.26.0 via MSI installer' - script: | bazel version echo Add other tasks to build, test, and deploy your project. displayName: 'Verify Bazel installation and run commands'
注意事项:
- 安装步骤一定要放在调用
bazel命令的步骤之前,顺序不能搞反 - 两种方法都需要执行
refreshenv,否则即使安装成功,当前会话还是找不到bazel命令
内容的提问来源于stack exchange,提问作者Vertexwahn
相关产品推荐
相关产品推荐

