我尝试使用TFS实现构建管道。
我们已经让TFS在每次提交后构建我们的项目。但构建时间太长,所以我们希望将构建分为两个阶段。持续整合文献提出了这种技术。
所以我正在寻找的是要做的事情。
关于如何实现这一点的任何想法?
答案 0 :(得分:2)
1)编写一个侦听BuildCompleted事件的服务。 IIS webservice sample code。 Self-hosted WCF sample code。在您的事件处理程序中,call the TFS Build API可以启动定义其他任务的单独构建类型,也可以直接从此处执行自定义代码。
2)Register your service与TFS,添加server side filter on successful builds。
答案 1 :(得分:1)
目前我们正在使用MSBuild中的<AfterEndToEndIteration>
目标和<Exec>
TfsBuild.exe执行此操作。
<Target Name="AfterEndToEndIteration">
<PropertyGroup>
<TfsBuildExecutable>C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\TfsBuild.exe</TfsBuildExecutable>
<CommandToTriggerNextStage>"$(TfsBuildExecutable)" start /server:$(TeamFoundationServerUrl) /buildDefinition:"Project\Next Stage" /queue</CommandToTriggerNextStage>
</PropertyGroup>
<Exec Condition=" '$(Status)'!='Failed' "
Command="$(CommandToTriggerNextStage)" />
</Target>
答案 2 :(得分:0)
您可以让您的中间人或次要构建签到生成的程序集到源代码控制中。这样你就可以让另一个构建使用已编译的DLL来打包和构建系统的第二部分。
你可以让“更大”的组装构建听取来自库构建的签到并组装依赖于那个构建的构建。
当然你要办理登机手续的二进制代码,但除非你做了一些奇怪的事情,否则你应该有足够的硬盘空间。