Передать массив в качестве входных данных в задачу Azure DevOps YAML - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь настроить CI, который будет генерировать пакеты NuGet в качестве артефактов в DevOps Azure (которые позже будут отправлены на мой сервер 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непосредственно

1 Ответ

0 голосов
/ 05 февраля 2019

Вы можете использовать каждую функцию (если она вообще доступна на данный момент):

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

Github PR для этой функции: https://github.com/Microsoft/azure-pipelines-yaml/pull/2#issuecomment-452748467

...