如何在 Azure DevOps 中设置 az cli 具体版本

How to set up az cli concrete version in Azure DevOps

最后更新 Azure DevOps 之后 我们的管道停止工作。
我正在使用 AZURE CLI 个任务。
调查显示 az cli 已更新为 2.2.0,但我们这边没有任何更改。

/usr/bin/az --version
azure-cli                          2.2.0

并且一些 az cli 操作开始打印警告。
Warnings 默认情况下在 bash 中重定向到错误流, 所以我最终得到:

Error: The process '/bin/bash' failed because one or more lines were written to the STDERR stream

如何为我的管道设置 az cli 的具体版本?
我希望管道与 Azure DevOps 更新保持稳定。

How to set up az cli concrete version in Azure DevOps

要解决该错误,请使用选项“标准错误失败”再次尝试运行任务未选中:

此外,恐怕没有这种开箱即用的方法来设置 az cli 的具体版本。我也不能通过 python 命令或巧克力包在已经具有最新版本 az cli 的代理中安装旧版本:

python 命令:

pip install --pre azure-cli --extra-index-url https://azurecliprod.blob.core.windows.net/edge

此命令行只安装最新版本的az cli。由于我没有旧版本 url,我无法测试它是否可以使用 python 命令来安装旧版本 az ci 当已经安装了最新版本时。

那我用巧克力包测试一下:

https://chocolatey.org/packages/azure-cli/2.1.0#individual

choco install azure-cli --version=2.1.0 --force

但是,由于存在最新版本的包,此安装命令仍然失败。

查看 this thread 了解更多详情。

或者,您可以设置 private agent 来构建您的项目,并通过 choco 包安装旧版本的 azure-cli。

希望这对您有所帮助。

目前不支持。 我创建了添加此功能的建议: https://developercommunity.visualstudio.com/idea/960733/set-up-fixed-az-cli-version-in-my-pipeline.html

使用 Azure DevOps 托管代理时,某些软件会自动安装在机器上。可以找到完整列表 here Ubuntu.

其中一个软件是 Azure CLI:Latest。因此,如果你想降级,你需要安装一个新的 version.The 以下命令是我安装新版本 (Bash) 的方法:

sudo apt install -y --allow-downgrades azure-cli=%AZ VERSION%-1~bionic

用法:

sudo apt install -y --allow-downgrades azure-cli=2.2.0-1~bionic

诀窍是在指定要安装的版本后使用 ~bionic