gpt4 book ai didi

azure-devops - azure-pipelines.yml,如何覆盖管道变量

转载 作者:行者123 更新时间:2023-12-02 16:38:00 24 4
gpt4 key购买 nike

我正在尝试学习如何为 Azure Devops 使用新的 yaml 配置管道系统,但我在理解变量的工作方式时遇到了一些麻烦。

当我设置管道时,它创建了一个文件 azure-pipelines.yml 并将其提交到主分支。

默认情况下,这个文件看起来是这样的......

trigger:
- master

pool:
vmImage: 'windows-latest'

variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'

我的项目设置了以下构建配置...“prod”、“staging”、“develop”。

我感到困惑的是,我应该在哪里覆盖实际管道的这些默认变量?

我可以直接修改这个文件中的值,但这实际上行不通。当我将更改从“master”合并回“staging”等时,这些较低环境的管道可能会尝试使用“prod”配置进行构建。

肯定有一些方法可以独立于源代码配置变量。

我可以在两个地方看到添加变量的选项...

当我为管道选择“编辑”时,在右上角,运行旁边有一个“变量”按钮。

我可以在那里添加变量,但它们似乎没有做任何事情。当我运行管道时,它们没有应用。

此外,让事情变得更加困惑的是,当我选择“运行管道”时,还有一个定义变量的选项,但同样,这些似乎什么也没做。构建仍然仅使用 yaml 文件中的预定义值运行。

最佳答案

同意 Shayki Abramczyk 的观点。该方法可以手动覆盖UI界面上的变量值。

我想分享给变量自动附加值的方法。

你可以使用 Expressions判断不同的情况(例如建立分支)。然后你可以为不同的情况设置值。

这是一个例子:

trigger:
- '*'

pool:
vmImage: 'windows-latest'

variables:
${{ if eq(variables['Build.SourceBranchName'], 'master') }}:
buildConfiguration: Prod
${{ if eq(variables['Build.SourceBranchName'], 'staging') }}:
buildConfiguration: Staging

steps:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
# Write your PowerShell commands here.

Write-Host $(buildConfiguration)

本示例代码可以根据不同的触发分支名称选择相应的值。 (master: Prod, staging: staging)

希望这对您有所帮助。

关于azure-devops - azure-pipelines.yml,如何覆盖管道变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62256668/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com