传递目录路径以发布tfs 2017.1

时间:2017-06-25 08:38:55

标签: tfs

我正在尝试向tfs发布管理发送一条释放路径,而不会触发构建。(我从代码中触发一个版本)。

我试图提供一个新的sourceBranch路径甚至是defaultworkingdirectory ...

我需要传递给tfs以使其工作的变量是什么?我应该在发布时使用什么变量?

谢谢

1 个答案:

答案 0 :(得分:0)

如果要使用特定构建作为工件源触发发布,则只需使用create release REST API指定相应的构建ID。

因此,在您的代码中,您可以尝试使用变量 Build.BuildId 来获取构建ID,然后使用create release REST API来触发发布。

POST http://win-ke1habi:8080/tfs/DefaultCollection/LCTFVCScrum/_apis/release/releases/?api-version=3.0-preview.2

Content-Type: application/json

{
  "definitionId": {release definition id},
  "description": "lctest 0627 07 07 ",
  "artifacts": [
    {
      "alias": "{build definition name-alias}",
      "instanceReference": {
        "id": "{build id}"
      }
    }
  ]
}

如果在发布定义中将TFVC 存储库设置为工件源,则只需指定源版本(变更集版本)即可触发发布:

POST http://win-ke1habi:8080/tfs/DefaultCollection/LCTFVCScrum/_apis/release/releases/?api-version=3.0-preview.2

Content-Type: application/json

{
    "definitionId": 4,
    "description": "test060727",
    "artifacts": [
        {
               "alias": "LCTFVCScrum",
                 "instanceReference": {
                        "name": "Changeset 38",
                        "id": "38",
                        "sourceBranch": "$/LCTFVCScrum"
                 }
        }       
    ]
}

<强>更新

如果你想在没有TFS系统的情况下使用变量是不可能的,根据你的描述,补丁系统是一个单独的系统,即使你设置它也无法在发布过程中识别变量。

如果您想自动执行此操作,则必须使用TFS系统,例如:对于补丁,crate CI构建,签入增量补丁将触发构建定义以生成工件(构建号将是补丁号),然后创建CD版本,将CI构建定义设置为工件源。