将数组作为输入传递给Azure DevOps YAML任务 [英] Pass array as inputs to Azure DevOps YAML task

查看:21
本文介绍了将数组作为输入传递给Azure DevOps YAML任务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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

我有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中

推荐答案

您可以使用每个函数(如果此时可用):

# 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

这篇关于将数组作为输入传递给Azure DevOps YAML任务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆