使用工件版本号触发TFS版本管理

时间:2016-04-14 13:02:38

标签: tfs visual-studio-2015 release-management devops ms-release-management

我很高兴看到TFS Update 2可用于内部部署,并包括Web体验的发布管理功能部分。我们一直在等待这个。

我需要一些关于如何最好地触发发布的帮助。

可以通过3种方式触发发布:

  • 基于链接到TFS构建定义
  • 的持续部署触发器
  • 手动
  • REST API

这很棒,但我认为它不符合我的预期。我需要技术解决方案的帮助或我对问题的看法。

我的想法:

我相信Build应该创建一个工件并将工件放在Drop位置,以便现在或一年后发布。 (稍后需要重建或添加服务器)

我觉得持续部署触发器因为它取决于TFS Build中的工件而被破坏,并且TFS Build将根据您的设置被删除。

可能的解决方案:

我相信我需要的解决方案是使用REST Api创建草稿版本,然后在放置位置传递工件的路径。在我的情况下,我只需提供版本号并在发布版本中构建路径。

问题:

此时未记录REST api。

感谢您对我的想法的看法。可能是我以错误的方式思考问题。

此外,如果有人知道如何使用REST api创建一个版本,这可能会让我到达我需要的位置。

我看到REST API将在以下位置记录,但现在还没有。我真的想要开始,我有超过100个应用程序要部署。

https://msdn.microsoft.com/en-us/library/vs/alm/release/managing-releases/create-release#CreateareleasebyusingtheRESTAPI

4 个答案:

答案 0 :(得分:2)

我们还在本地使用TFS 2015 update 2,并使用PowerShell与TFS REST API进行交互。

正如此线程的评论中所述,REST API文档是实时的,并且要创建版本,请参阅以下链接:https://www.visualstudio.com/en-us/docs/integrate/api/rm/releases#create-a-release

要回答您的问题: - 要使用PowerShell脚本创建版本,请尝试以下操作:

$filePath = "C:\PATH_TO_JSON"
$username =  'DOMAIN\USRNAME'
$password  =  'PASSWORD'
$body = Get-Content $filePath
$resource = "http://TFS_URL/_apis/release/releases`?api-version=2.2-preview.1"
$cred = New-Object System.Management.Automation.PSCredential($username, (ConvertTo-SecureString -String $password -AsPlainText -Force))

Invoke-RestMethod -Method Post -Uri "$resource" -Credential $cred -ContentType "application/json" -Body $body

$ filePath 变量应指向包含以下JSON标记的文件。请务必更改示例JSON中的变量以适合您的本地发行版定义:

{
  "definitionId": 12,
  "description": "M 98 release",
  "artifacts": [
    {
      "alias": "Fabrikam.CI",
      "instanceReference": {
        "id": "90"
      }
    }
  ]
}
  

您还可以使用JavaScript与TFS REST API进行交互。请参阅@Elmar的帖子:TFS 2015 REST API Authentication

答案 1 :(得分:1)

VSTS的发布管理API文档是实时here。大多数API也适用于TFS 2015.2。

要创建新版本,请参阅我的earlier answer

答案 2 :(得分:0)

您可以无限期地保留构建,以便在需要时始终可用。 enter image description here

答案 3 :(得分:-1)

ReleaseManagement REST API已在

公开

https://www.visualstudio.com/integrate/api/rm/releases#Createarelease。请看一看。创建发布时,会在工件中传递三件事: - 别名,instanceReference(名称和ID)。