【问题标题】:Azure devops pipelines conditional nameAzure devops 管道条件名称
【发布时间】:2019-01-16 08:44:02
【问题描述】:

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

这是一个正常的构建定义。

pool:
  vmImage: 'VS2017-Win2016'

name: myBuildName

steps:
- task: NuGetToolInstaller@0

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

我想做的是使用条件检查来设置名称。如果(某事)则 X 否则 Y

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

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

# if ReleaseNumber var exists
if ($(ReleaseNumber))
  name: $(ReleaseNumber).$(Build.BuildId)
else
  name: $(date:yyyyMMdd)$(rev:.r)

【问题讨论】:

    标签: azure-devops azure-pipelines


    【解决方案1】:

    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"
      }
    

    【讨论】:

    • 您拥有的那个脚本,它会是更新名称的 PowerShell 步骤,是吗?
    • 是的,##vso[build.updatebuildnumber]$nameName 是 PowerShell 上的一种 Azure DevOps 方法,用于更新构建名称。
    • 刚刚完成对您的解决方案的测试。它确实有效,非常感谢。虽然不实用。这种有条件的东西可能不仅对名称有用,而且对设置变量也有用。如果 Microsft 添加对此的支持会很好
    猜你喜欢
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 2020-01-18
    • 2020-11-01
    • 2020-09-15
    • 2022-09-23
    • 2019-11-23
    • 2020-09-06
    相关资源
    最近更新 更多