Циклы и массивы в Azure Devops Pipelines - PullRequest
2 голосов
/ 10 июля 2020

Вы можете создать al oop в конвейерах DevOps YAML, используя синтаксис, похожий на -${{ each x in y }}:. Насколько я понимаю, y может быть массивом.

Однако я обнаружил, что для each документации нет. Единственная страница, описывающая пример его использования, находится на странице «Шаблоны».

Итак, мой вопрос: как мне go указать массив? Я знаю, что один из способов - использовать -${{ each book in parameters.books }}:, а затем передать «список» из books, например:

- template: template.yml
  parameters: 
    books:
      - book1
      - book2
      - book3

Однако я бы также хотел определить массив как переменную:

variables:
  books:
    - book1
    - book2
    - book3

Однако для этого ADO выдает ошибку A sequence was not expected.

Нет возможности определить такой массив? Я бы предположил, что тогда я назову их -${{ each book in variables.books }}: Если нет, есть ли другой способ указать список?

1 Ответ

3 голосов
/ 13 июля 2020

Не поддерживается определение массива как переменной, синтаксис переменной равен variables: { string: string }. Проверьте следующий случай:

https://developercommunity.visualstudio.com/content/problem/812728/variables-in-yaml-pipeline-are-not-allowing-to-def.html

Переменные Yaml всегда были сопоставлениями строк: строк.

Мы готовимся к выпуску функция в ближайшем будущем позволит вам проходить более сложные конструкции. Следите за обновлениями!

В настоящее время вы можете использовать только параметры для передачи и l oop массив:

parameters:
- name: 'param'
  type: object
  default: 
  - FOO
  - BAR
  - ZOO

steps:
- ${{ each p in parameters.param }}:
  - script: echo ${{ p }}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...