azure-devops - 在自定义 Azure DevOps 任务/扩展中发送对象数组

标签 azure-devops yaml azure-devops-extensions

我想为 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/

相关文章:

azure-devops - 从板中的任务 Azure Devops 重置 ID

azure - 如何查看用户有权访问Azure DevOps组织中的哪些项目?

azure-devops - Docker 从 azure DevOps 引入管道?

amazon-web-services - 创建 S3 存储桶策略时出错 - 属性 PolicyDocument 的值必须是对象

go - 根据值匹配数组

azure-devops - Azure DevOps 中是否有回归测试功能?

azure-devops - 如何在 Azure Artifacts 中更新具有相同版本号的 Maven 依赖项

Spring cloud 为不同的配置文件配置本地和远程存储库

Azure tfs-cli 不包括所有文件 (.vsix)

Angular 10 DevOps 扩展 Rest Api