通过VSTS Rest API启动构建并传递变量

时间:2015-12-17 19:49:49

标签: azure-devops azure-pipelines azure-devops-rest-api

我想通过REST API启动Visual Studio Team Service构建。有一个API for queuing builds,但我无法找到定义变量的方法。

3 个答案:

答案 0 :(得分:17)

当您需要在队列时设置值时,接受的答案并不能真正回答问题。 解决方案实际上非常简单,您只需要向json有效负载添加parameters字段。内容应该是包含参数的json字符串(不是直接对象) 例如:

{
    "parameters":  "{\"ReleaseNumber\":  \"1.0.50\", \"AnotherParameter\":  \"a value\"}",
    "definition":  {
                       "id":  2
                   }
}

编辑:此功能现已正确记录为an optional stringified dictionary。见https://www.visualstudio.com/fr-fr/docs/integrate/api/build/builds#queue-a-build

答案 1 :(得分:2)

变量包含在definitions中,您可以更新构建定义,先通过build-definition api设置变量,然后对构建进行排队。

以下是变量部分来自build-definition api:

  "variables": {
    "system.debug": {
      "value": "false",
      "allowOverride": true
    },
    "BuildConfiguration": {
      "value": "release",
      "allowOverride": true
    },
    "BuildPlatform": {
      "value": "any cpu",
      "allowOverride": true
    }
  },

答案 2 :(得分:1)

对于任何有此问题的人(我确实遇到过),自接受的答案以来使用的 API 有所不同(这对我来说根本不起作用)。但是按照 Cyprien Autexier 的建议,我查看了引擎盖(Firefox Dev Tools),我注意到门户不再使用 Builds API。它使用流水线一 (https://docs.microsoft.com/en-us/rest/api/azure/devops/pipelines/runs/run-pipeline?view=azure-devops-rest-6.1)。有了这个,完美地工作。