代码之家  ›  专栏  ›  技术社区  ›  InteXX

如何查找正在进行的tfs版本?

  •  1
  • InteXX  · 技术社区  · 6 年前

    如果TFS 2018的管道没有完全完工,我需要让它失败。仅对生成进行批处理是不够的;在开始另一个生成之前,还必须完成链接的发布。我的想法是通过rest api在powershell脚本中实现这一点。

    我在官方文件里看到了 here 有个叫 TaskStatus 是的。它提供了 inProgress ,可能用于正在进行的发布。这也许能起到作用,但没有迹象表明如何实际使用它。

    使用rest api,如何获取 任务状态 一个特定的释放?

    1 回复  |  直到 6 年前
        1
  •  0
  •   InteXX    6 年前

    这个 in process 以及其他一些价值观,比如 succeeded 我是说, canceled 只代表发布管道中任务的状态。

    你可以简单地使用 Rest API 得到释放

    GET https://fabrikam.vsrm.visualstudio.com/MyFirstProject/_apis/release/releases/{releaseId}?api-version=4.1-preview.6

    应该有一个名为status的值:

    "id": 18,
      "name": "Release-18",
      "status": "abandoned",
      "createdOn": "2017-06-16T01:36:20.397Z",
      "modifiedOn": "2017-06-16T01:36:21.07Z",
      "modifiedBy": {
        "id": "4adb1680-0eac-6149-b5ee-fc8b4f6ca227",
        "displayName": "Chuck Reinhart",
        "uniqueName": "fabfiber@outlook.com",
        "url": "https://app.vssps.visualstudio.com/A168224e4-29ff-4081-9954-c8780ce81117/_apis/Identities/4adb1680-0eac-6149-b5ee-fc8b4f6ca227",
        "imageUrl": "https://fabfiber-inc.visualstudio.com/_api/_common/identityImage?id=4adb1680-0eac-6149-b5ee-fc8b4f6ca227"
      },
      "createdBy": {
        "id": "4adb1680-0eac-6149-b5ee-fc8b4f6ca227",
        "displayName": "Chuck Reinhart",
        "uniqueName": "fabfiber@outlook.com",
        "url": "https://app.vssps.visualstudio.com/A168224e4-29ff-4081-9954-c8780ce81117/_apis/Identities/4adb1680-0eac-6149-b5ee-fc8b4f6ca227",
        "imageUrl": "https://fabfiber-inc.visualstudio.com/_api/_common/identityImage?id=4adb1680-0eac-6149-b5ee-fc8b4f6ca227"
      },
      "environments": [
        {
          "id": 69,
          "releaseId": 18,
          "name": "Dev",
          "status": "notStarted",
          "variables": {},
          "preDeployApprovals": [],
          "postDeployApprovals": [],
          "preApprovalsSnapshot": {
            "approvals": [
              {
                "rank": 1,
                "isAutomated": false,
                "isNotificationOn": false,
                "approver": {
                  "id": "4adb1680-0eac-6149-b5ee-fc8b4f6ca227",
                  "displayName": "Chuck Reinhart",
                  "uniqueName": "fabfiber@outlook.com",
                  "url": "https://app.vssps.visualstudio.com/A168224e4-29ff-4081-9954-c8780ce81117/_apis/Identities/4adb1680-0eac-6149-b5ee-fc8b4f6ca227",
                  "imageUrl": "https://fabfiber-inc.visualstudio.com/_api/_common/identityImage?id=4adb1680-0eac-6149-b5ee-fc8b4f6ca227"
                },
                "id": 0
              }
    

    您可以在返回的json文件中获取值状态,并判断发布是否成功。最后根据这个状态来触发另一个构建与否。


    更新

    返回的json示例,其中包含任务的状态信息:

      "deploymentJobs": [
                                    {
                                        "job": {
                                            "id": 5,
                                            "timelineRecordId": "855ea6d6-9ed0-442d-b921-0c4add8bb068",
                                            "name": "Release",
                                            "dateStarted": "2018-07-04T08:53:05.9133333Z",
                                            "dateEnded": "2018-07-04T08:53:21.34Z",
                                            "startTime": "2018-07-04T08:53:05.9133333Z",
                                            "finishTime": "2018-07-04T08:53:21.34Z",
                                            "status": "succeeded",
                                            "rank": 1,
                                            "issues": [],
                                            "agentName": "DFA00"
                                        },
                                        "tasks": [
                                            {
                                                "id": 1,
                                                "timelineRecordId": "fa3bb635-eab4-4c1b-9cc0-fdccd7ced33f",
                                                "name": "Initialize Job",
                                                "dateStarted": "2018-07-04T08:53:06.5833333Z",
                                                "dateEnded": "2018-07-04T08:53:06.8033333Z",
                                                "startTime": "2018-07-04T08:53:06.5833333Z",
                                                "finishTime": "2018-07-04T08:53:06.8033333Z",
                                                "status": "succeeded",
                                                "rank": 1,
                                                "issues": [],
                                                "agentName": "DFA00",
                                                "logUrl": "http://xxxx:8080/tfs/DefaultCollection/7658559e-6e61-422a-952b-a5fce0b6ca1d/_apis/Release/releases/49/environments/49/tasks/1/logs?releaseDeployPhaseId=54"
                                            }, 
    

    应该有 时间记录 我是说, 开始时间 ,请 完成时间 我是说, 地位 对于任务部署,只会产生一个版本。