将数组作为输入传递给Azure DevOps YAML任务

问题描述 投票:3回答:1

[我正在尝试配置一个CI,该CI将在Azure DevOps上将工件生成为NuGet包(稍后将其推送到我的NuGet服务器上。

为此,我在Azure DevOps(YAML版本)上使用生成管道。

我有3个应该构建软件包的项目。我正在使用NuGetCommand@2完成此任务:

- task: NuGetCommand@2
  inputs:
    command: pack
    packagesToPack: $(Build.SourcesDirectory)/src/HTS_MessageEngine.Communication/HTS_MessageEngine.Communication.csproj
    majorVersion: $(majorVersion)
    minorVersion: $(minorVersion)
    patchVersion: $(patchVersion)
    versioningScheme: byPrereleaseNumber

但是,对于每个项目,我必须将此块重复3次。有没有办法在packagesToPack参数中指定项目数组?到目前为止,每个软件包的版本都是相同的,因此我不需要三个不同的块...

注意:这3个项目都是3个NetStandard,并且用于程序包构建的属性直接存储在csproj中

continuous-integration azure-devops yaml nuget-package
1个回答
4
投票

您可以使用每个功能(如果目前尚可用):>

# my-template.yml
parameters:
steps:
- ${{ each project in parameters.projects }}:
  - task: PublishBuildArtifacts@1
    displayName: 'Publish ${{ project }}
    inputs:
      PathtoPublish: '$(Build.ArtifactStagingDirectory)/${{ project }}.zip'
# ci.yml
steps:
- template: my-template.yml
  parameters:
    projects:
    - test1
    - test2

此功能的Github PR:https://github.com/Microsoft/azure-pipelines-yaml/pull/2#issuecomment-452748467

© www.soinside.com 2019 - 2024. All rights reserved.