Отправить массив объектов внутри пользовательских Azure задач / расширений DevOps - PullRequest
3 голосов
/ 02 апреля 2020

Я хочу создать пользовательскую задачу для Azure DevOps, и я хотел бы иметь массив объектов в качестве параметров и использовать его следующим образом в yaml:

data:
  - field1: "data1"
    field2: "data2"
  - field1: "data3"
    field2: "data4"

Однако я не нашел любые доступные методы или примеры для такого рода случаев, только простой массив, такой как string array. Как передать объект listof из yaml в мою пользовательскую задачу Azure DevOps? Не стесняйтесь спрашивать меня, если нужно, более подробную информацию.

РЕДАКТИРОВАТЬ:

Например, я хочу отправить сложный список объектов:

data:  # Data should be an array
  - object:
    file1: "/myDestinationPath"
    file2: "/TheFilePathToSend"
    override: true
  - object:
    file1: "/myDestinationPath2"
    file2: "/TheFilePathToSend2"
    override: false
...

Затем я ожидаю загрузить его, что-то вроде:

let dataArray = task.getPathInput('data', true);

Где dataArray может содержать простой массив JSON, после него будет легко управлять.

1 Ответ

0 голосов
/ 10 апреля 2020

Fandro, предложение может изменить способ организации ваших параметров и использования функции taskgetDelimitedInput.

Предполагается, что вы используете Azure конвейерную задачу lib в TypeScript и знакомство с Создание задачи построения .

Шаг 1) Определите переменные, используя разделитель (например, |) внутри файла task.json.

    dataOrigin: "/myDestinationPath|/myDestinationPath2"
    dataDestination: "/TheFilePathToSend|/TheFilePathToSend2"
    dataOverwriteCriteria: "true|false"

Шаг 2) Редактировать Ваш файл задачи (например, index.ts) вы можете использовать taskgetDelimitedInput , он возвращает массив строк.

Шаг 3) Управление вашими значениями:

let dataOriginArray = task.taskgetDelimitedInput('dataOrigin', "|");
let dataDestinationArray = task.taskgetDelimitedInput('dataDestination', "|");
let dataOverwriteCriteriaArray = task.taskgetDelimitedInput('dataOverwriteCriteria', "|");
...