【问题标题】:How to create conditional build properties in DevOps build pipeline如何在 DevOps 构建管道中创建条件构建属性
【发布时间】:2021-06-16 20:34:17
【问题描述】:

我有以下构建管道任务:

  - 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 任务,并动态构建我的命令行。

我缺少任何选项吗?

【问题讨论】:

    标签: azure-devops nuget azure-pipelines azure-pipelines-yaml azure-devops-pipelines


    【解决方案1】:

    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'
    

    【讨论】:

    • 不幸的是,DevOps 不允许您重复相同的键两次..
    • 你确定吗?我检查了,您可以保存并运行它。我注意到一些关于重复的突出显示,但这是显示问题。这个 sn-p 一切都很好。
    • 哦,如果这只是一个我可以忽略的显示错误,那么我们应该很好..我会试试看!
    猜你喜欢
    • 1970-01-01
    • 2021-01-21
    • 1970-01-01
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    • 2022-11-24
    • 2023-01-20
    • 2023-03-14
    相关资源
    最近更新 更多