【问题标题】:User PowerShell to Queue a Build in Azure Devops用户 PowerShell 在 Azure Devops 中对生成进行排队
【发布时间】:2020-04-15 17:40:15
【问题描述】:

堆栈中有一些相关的问题,我将它们放在下面。我正在使用 Azure DevOps api 5.1 并尝试将构建排队。

{
    "Definition": {
        "id": "7"
    }
}

这将使用已在定义中设置的变量对构建进行排队。我尝试以几种不同的方式传递变量,但最终都没有被 API 支持。

{
    "Definition": {
        "id": "7",
        "variables": {
            "tag": "@{value=v1.1.0}",
            "system.debug": "@{value=true}"
        }
    }
}

根据我也尝试过的一些相关问题

{
    "Definition": {
        "id": "7",
        "parameters": {
            "tag": "@{value=v1.1.0}",
            "system.debug": "@{value=true}"
        }
    }
}

在通过 UI 对构建进行排队时从 chrome 捕获输出后,它似乎期望变量而不是参数,但是当我返回查看构建时看到的是传入的变量不是荣幸。此外,我已经采用了我希望运行的定义并将其隐藏到上面的 body.definition 中。

VSTS use API to set build parameters at queue time

TFS 2017 API; Queuing a build with variables

How to QUEUE a new build using VSTS REST API

如果我应该添加更多细节,请告诉我我没有放实际代码,但它非常简单

Invoke-RestMethod -Method post -Uri $uri -Headers $Header -ContentType 'application/json' -Body ($Body |ConvertTo-Json -Compress -Depth 10)

【问题讨论】:

  • 我应该补充一点,我正在运行的构建是一个简单的 powershell 脚本,它会踢出标记变量以进行确认,我没有看到我传入的值。
  • 也刚刚注意到上面呈现的代码有@'s 我认为这是一个堆栈格式化的东西,因为在运行的代码中没有@'s。

标签: powershell azure-devops


【解决方案1】:

在启动邮递员并找到一个集合之后,我尝试传递变量的方式似乎存在两个问题。

问题 1:变量与参数

尽管基于这里的几个问题以及捕获从 Web 浏览器到 devops 的流量。您不能将变量用作定义的一部分,它必须是参数。此外,它们似乎不能嵌套在定义(body.definition.parameters)中,它们必须与定义(body.parameters)处于同一级别。

问题2:格式

参数值必须是压缩的json,另外不能是对象,必须是variable:value。

{
    "definition": {
        "id": 7
    },
    "parameters": "{\"tag\":\"v3.2.1\"},\"system.debug\":\"true\"}"
}

我觉得我之前可能在我上面发布的相关问题之一中看到过这个答案。对所有重复工作表示歉意。

【讨论】:

  • 很高兴您解决了这个问题,如果我能提供其他帮助,请告诉我
  • 非常感谢这里分享的这个解决方案。如果你能接受这个答案会更好,然后其他 SO 用户可以直接知道这是一个正确的解决方案。
【解决方案2】:

还有 Run Pipeline rest api 可用:

发布https://dev.azure.com/{organization}/{project}/_apis/pipelines/{pipelineId}/runs?api-version=6.0-preview.1

url中的pipelineId是defineId

{
  "templateParameters": {
    "param1": "paramValue1",
    "param2": "paramValue2",
    "param3": "paramValue3"
  }
}

记录在案的here

没有足够的代表发表评论

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 2019-11-13
    • 2019-10-08
    • 2014-03-16
    • 2019-07-09
    • 1970-01-01
    相关资源
    最近更新 更多