有没有办法更新 Azure DevOps 管道中的变量组变量?

Posted

技术标签:

【中文标题】有没有办法更新 Azure DevOps 管道中的变量组变量?【英文标题】:Is there a way to update variable group variables in Azure DevOps pipelines? 【发布时间】:2021-09-30 19:11:05 【问题描述】:

我有一个名为versions 的变量组,其中一个变量名为dev,其值为0.0.0。我正在尝试在管道运行时更新此变量的值。

天蓝色管道.yml

- task: AzureCLI@2
  displayName: Update environment variable
  inputs:
    azureSubscription: '<Azure Connection Name>'
    scriptType: 'bash'
    scriptLocation: 'inlineScript'
    inlineScript: |
      'az pipelines variable-group variable update
      --group-id 83
      --name dev
      --org <Organization Name>
      --project <Project Name>
      --value d0.0.3'

当我运行它时,它失败并给我一个错误提示:

--group-id 83
--name dev
--org <Organization Name>
--project <Project Name>
--value d0.0.3: No such file or directory
##[error]Script failed with exit code: 127
/usr/bin/az account clear
Finishing: Update environment variable

我确保我拥有对变量组的完全访问权限。什么会导致这个错误?我确保我的值是准确的,所以我认为我在这个脚本中遗漏了一些东西。

【问题讨论】:

【参考方案1】:

您正在尝试使用az pipelines variable-group variable update 命令更新变量组中的变量。

如果您有秘密变量并在value 下提到它,请确保包含prompt-value 参数。

prompt-value:设置为 true 以使用环境变量或通过标准输入提示更新秘密变量的值。接受的值为 false 和 true。

秘密:可选。指示变量的值是否保密。接受的值为 false 和 true。

value:更新变量的值。对于秘密变量,使用prompt-value 参数以提示通过标准输入输入它。对于非交互式控制台,可以从以 AZURE_DEVOPS_EXT_PIPELINE_VAR_ 为前缀的环境变量中选择它。例如,可以使用环境变量 AZURE_DEVOPS_EXT_PIPELINE_VAR_MySecret 输入名为 MySecret 的变量。

执行上述步骤后,如果您仍然收到##[error]Script failed with exit code: 127 错误,请检查您的目录/文件路径。 How to fix bash 127 error return code

您可以参考How to Increase/Update Variable Group value using Azure Devops Build Definition?、Updating Variable Groups from an Azure DevOps pipeline和Understanding Azure DevOps Variables

【讨论】:

以上是关于有没有办法更新 Azure DevOps 管道中的变量组变量?的主要内容,如果未能解决你的问题,请参考以下文章

我正在尝试使用另一个变量更新 azure devops 中的管道变量。但我不确定如何做到这一点

用于更新文件和签入 TFS 的 Azure DevOps 管道任务

azure devops 构建管道将超时减少到 30 分钟

返回 Azure DevOps Server (TFS) 中管道的旧视图

如何在 azure devops YAML 管道中将单个代理用于多个作业/阶段

Azure DevOps 项目管道无法从不同项目中的工件源访问 NuGet 包