为了自动化我们的部署,我想基于给定的ChangeSetId重建一个应用程序。构建完成后,我想获取构建的 Artifact (.exe),以便我们进行部署。出于这个问题,我将重点放在“从构建中获取 Artifact ”部分。

出于DevOps的目的,我想使用PowerShell,因为它应该能够访问TFS API库,并且因为MS建议使用它。

环境

我已经在On Premise TFS 2015服务器(运行良好)中设置了Builds,并在此构建后添加了VSO任务“发布 Artifact ”。到现在为止还挺好。
已发布的 Artifact 将存储在服务器上,这基本上意味着我必须下载与构建相关的 Artifact -每个现有构建都将链接其 Artifact -这比我的书中的UNC更好。

我的挑战没有来;我如何以编程方式访问这些 Artifact ,步骤3?

  • 获取ChangeSetId的源
  • 具有给定配置
  • 的MSBuild应用程序
  • 使用PowerShell
  • 获取构建 Artifact
  • 使用发布管理(以及Powershell)部署到环境
  • 最佳答案

    TFS 2015附带了new REST API,它包括获取特定内部版本 Artifact 的方法。我将通过以下方式应对您的挑战:

  • 在“发布 Artifact ”步骤之后添加“PowerShell脚本”构建步骤
  • 在该PowerShell脚本中:
  • 获取当前版本的ID。 TFS公开a number of predefined variables,并且构建ID在那里。所有这些变量最终都作为环境变量,并且this post可以帮助您从PowerShell脚本
  • 中读取相应的变量。
  • 接下来,向get build artifacts发出Web请求。从API描述中可以看到,您只需要提供构建ID
  • 然后,解析JSON响应-downloadUrl属性包含下载压缩为单个存档
  • 的构建的所有 Artifact 的链接。
  • 最后,提取归档文件并选择所需的 Artifact 。也许,您也希望在此步骤中将它部署到您的测试环境中

  • 希望这可以帮助。

    08-04 17:04