我想为 Azure DevOps 创建一个自定义任务,我希望有一个对象数组作为参数并在 yaml 中像这样使用它:
data:
- field1: "data1"
field2: "data2"
- field1: "data3"
field2: "data4"
但是我没有找到任何适用于这种情况的方法或示例,只有像 string
数组这样的简单数组。我如何将对象列表从 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数组,方便以后管理。
最佳答案
Fandro,一个建议可能是改变您组织参数的方式并使用 taskgetDelimitedInput
函数。
假设您使用的是 Azure pipeline task lib in TypeScript并熟悉 Build task creation .
第 1 步)在 task.json
文件中使用分隔符(例如 |
)定义变量。
dataOrigin: "/myDestinationPath|/myDestinationPath2"
dataDestination: "/TheFilePathToSend|/TheFilePathToSend2"
dataOverwriteCriteria: "true|false"
第 2 步)编辑您的任务文件(例如 index.ts
),您可以使用 taskgetDelimitedInput ,它返回字符串数组。
第 3 步)操纵您的值(value)观:
let dataOriginArray = task.taskgetDelimitedInput('dataOrigin', "|");
let dataDestinationArray = task.taskgetDelimitedInput('dataDestination', "|");
let dataOverwriteCriteriaArray = task.taskgetDelimitedInput('dataOverwriteCriteria', "|");
关于azure-devops - 在自定义 Azure DevOps 任务/扩展中发送对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60993631/