Azure devops管道条件名称

use*_*593 6 azure-devops

我正在使用azure-devops管道,但是在设置构建名称时遇到了问题。

这是一个普通的构建定义。

pool:
  vmImage: 'VS2017-Win2016'

name: myBuildName

steps:
- task: NuGetToolInstaller@0

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'
Run Code Online (Sandbox Code Playgroud)

我想做的是通过条件检查设置名称。如果(某物)则X否则Y

我检查了条件文件,但是没有运气。

这是我想做的,但是显然行不通

# if ReleaseNumber var exists
if ($(ReleaseNumber))
  name: $(ReleaseNumber).$(Build.BuildId)
else
  name: $(date:yyyyMMdd)$(rev:.r)
Run Code Online (Sandbox Code Playgroud)

Sha*_*zyk 6

Azure DevOps YAML 不支持您尝试执行的值中的条件。

您查看的条件文档用于作业/任务执行,您可以指定何时使用自定义条件执行任务。

在解决方法中,您可以添加一个 PowerShell 任务,该任务将根据您的条件更新构建名称。

例如,保留$(date:yyyyMMdd)$(rev:.r)名称并在构建期间运行此脚本:

if ($env:ReleaseNumber){
  Write-Host "##vso[build.updatebuildnumber]$env:ReleaseNumber.$env:Build_BuildId"
  }
else{
  Write-Host "Release Number not exist, build name not changed"
  }
Run Code Online (Sandbox Code Playgroud)