Как передать список в качестве параметра сборки в шаблон YAML в Azure DevOps Server 2019 (локально)? - PullRequest
0 голосов
/ 14 июля 2020

Например, рассмотрим следующий шаблон (например, с именем xyz.yml):

parameters:
  projects: ['p1', 'p2', 'p3']

steps:
- ${{ each project in parameters.projects }}:
  - task: VSBuild@1
    displayName: Build ${{ project }}
    inputs:
      solution: ${{ project }}.sln
      ...

Теперь предположим, что у меня есть следующий файл azure -pipelines.yml:

...
steps:
  ...
  - template: xyz.yml
    parameters:
      projects: ???
...

Как я могу передать параметр шаблона projects из переменной сборки? Предположим, во время сборки я хочу запросить сборку только p1 и p3 . Как мне это сделать?

Ответы [ 2 ]

1 голос
/ 22 июля 2020

Вы можете попробовать использовать параметр типа stepList и передать то же значение параметра в шаблон.

Например:

main.yaml:

parameters:
  - name: mySteplist
    type: stepList
    default:
    - task: CmdLine@2
      inputs:
        script: |
          echo Write your commands here
          
          echo Hello world1
    - task: CmdLine@2
      inputs:
        script: |
          echo Write your commands here
          
          echo Hello world2

trigger:
  - none

steps:
  - template: stepstem.yml
    parameters: 
      buildSteps:
      - ${{ parameters.mySteplist }}
    
  # - template: stepstem.yml
  #   parameters:
  #     buildSteps:  
  #     - bash: echo Test #Passes
  #       displayName: succeed
  #     - bash: echo "Test"
  #       displayName: succeed
  # - ${{ parameters.mySteplist }}
  - task: CmdLine@2
    inputs:
      script: |
        echo Write your commands here
        
        echo Hello world3

steptem. yaml:

parameters:
- name: buildSteps # the name of the parameter is buildSteps
  type: stepList # data type is StepList
  default: []

steps:
  - ${{ parameters.buildSteps }}
  - task: CmdLine@2
    inputs:
      script: |
        echo Write your commands here
        
        echo Hello world tem
  - script: echo "hello"

Итак, вы можете использовать VSBuild@1 tasks в качестве значения параметра по умолчанию и можете изменить его при построении очереди.

0 голосов
/ 14 июля 2020

Посмотрите следующий пример:

#xyz.yml

parameters:
  projects: []

steps:
- ${{ each project in parameters.projects }}:
  - task: VSBuild@1
    displayName: Build ${{ project }}
    inputs:
      solution: ${{ project }}.sln
      ...
      ...

#azure-pipelines.yml

 steps:
 - template: xyz.yml
   parameters:
     projects: ["p1", "p3"]
...