如何在 DevOps 构建管道中创建条件构建属性

How to create conditional build properties in DevOps build pipeline

我有以下构建管道任务:

  - task: NuGetCommand@2
    displayName: 'Pack CodingStyles.nuspec'
    inputs:
      command: 'pack'
      packagesToPack: 'src\CodingStyles\CodingStyles.nuspec'
      packDestination: 'src\CodingStyles\bin'
      versioningScheme: 'off'
      buildProperties: '-NoDefaultExcludes -Version $(Build_Major).$(Build_Minor).$(Build_Patch)'

但是,如果变量 $IsPreRelease 为真,我还想添加另一个构建 属性:

buildProperties: '-NoDefaultExcludes -Version $(Build_Major).$(Build_Minor).$(Build_Patch) -Suffix beta'

关于如何做到这一点的一些想法:

  1. 我可以有这个任务的两个不同版本,每个版本都有一个基于变量的 condition:。这可能会奏效,但它非常多余,因为其他一切都是一样的。
  2. 运行 Powershell 任务而不是 NuGetCommand 任务,并动态构建我的命令行。

我缺少任何选项吗?

You are missing one option:

  - task: NuGetCommand@2
    displayName: 'Pack CodingStyles.nuspec'
    inputs:
      command: 'pack'
      packagesToPack: 'src\CodingStyles\CodingStyles.nuspec'
      packDestination: 'src\CodingStyles\bin'
      versioningScheme: 'off'
      ${{ if ne(variables['IsPreRelease'], 'true') }}:
        buildProperties: '-NoDefaultExcludes -Version $(Build_Major).$(Build_Minor).$(Build_Patch)'
      ${{ if eq(variables['IsPreRelease'], 'true') }}:
        buildProperties: '-NoDefaultExcludes -Version $(Build_Major).$(Build_Minor).$(Build_Patch) -Suffix beta'