在发布期间标记TFS Git存储库

时间:2017-03-17 14:42:41

标签: git tfs tfsbuild release ms-release-management

我正在使用TFS 2017设置构建/发布环境。

我将Build设置为在每次提交后自动运行,当我们准备发布我们的应用程序版本时,手动创建Release,然后部署到各种环境。

我们希望在我们的git存储库中标记已发布的版本,以便轻松了解哪个git版本对应于二进制文件。 Build定义中的“Label Source”设置允许在构建时标记git修订版,但由于我们构建了每个提交,这些提交会产生许多我们不关心的标记(因为它们在任何地方都没有部署到发布了。)

如何设置TFS以便在创建Release(或可能部署到环境)时,在Git存储库中的相应提交上创建标记?

3 个答案:

答案 0 :(得分:3)

您可以使用REST API添加标记:

POST https://{instance}/DefaultCollection/_apis/git/repositories/{repository}/refs?api-version={version}

[
  {
    "name": {string},
    "oldObjectId": {string}, (The current commit id the ref is at. 0000000000000000000000000000000000000000 when creating a new ref.)
    "newObjectId": {string}
  }
]

通过PowerShell调用Rest API:

$result = Invoke-RestMethod -Uri $uri -Method Get -ContentType "application/json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}

更多信息,您可以参考Calling VSTS APIs with PowerShell(适用于2017年的tfs)

答案 1 :(得分:1)

答案 2 :(得分:0)

您可以在发布定义中添加命令行任务,并使用git命令git tag -a vx.x $(Build.SourceVersion) -m "xxx" 要添加标签,请查看以下屏幕截图:

enter image description here

=============================================== ==========================

<强>更新

为了避免指定git reop签出的工作文件夹,您可以在构建定义中发布$(build.sourcesdirectory)到drop文件夹,然后在发布定义中,您只需选择drop folder目录。查看下面的屏幕截图:

enter image description here

enter image description here