如何在其他构建定义完成后触发构建定义?

时间:2015-09-02 12:04:54

标签: tfs msbuild build-process tfsbuild build-definition

有几个构建过程应该在相同的代码库上运行 不是以随机顺序,而是以特定排列的序列,一个接一个:

┌──────────────┐    ┌────────────────────┐    ┌──────────────────────┐
│ compile code │ -> │ check the binaries │ -> │ Do something else... │
└──────────────┘    └────────────────────┘    └──────────────────────┘

你是怎么做到的?

2 个答案:

答案 0 :(得分:0)

您需要编辑defaulttemplate.xml文件。

在defaulttemplate.xaml文件中创建一个新活动,并添加一个用于调用powershell或批处理脚本的参数。在这些脚本中,您可以运行命令以调用另一个构建定义,如下所示:

TFSBuild启动http:\ myserv:8080 / TFS Myproj MyBuild / msBuildArguments:“/ p:RestoreSQLServer = Lamdev10”

答案 1 :(得分:0)

为了满足您的要求,您可以创建一个WCF服务来监听BuildCompletedEvent事件;一旦完成一个构建,您就可以以编程方式对另一个构建进行排队。

有关如何创建WCF项目以订阅TFS事件的详细信息,请检查:http://www.ewaldhofman.nl/post/2010/08/02/How-to-use-WCF-to-subscribe-to-the-TFS-2010-Event-Service-rolling-up-hours.aspx

要以编程方式对构建进行排队,您可以使用IBuildServer.QueueBuild方法。