我正在扩展一个门控构建以与第三方系统集成。我最想做的是将变更集ID和已更改文件列表发送到此系统。
在Jim Lamb的帖子(http://blogs.msdn.com/b/jimlamb/archive/2009/11/18/how-to-create-a-custom-workflow-activity-for-tfs-build-2010.aspx)之后,我添加了一个活动来连接到另一个系统,并在检查更改活动后将其添加到我的构建定义xaml中。
我的问题是,如何在自定义活动中获取有关此特定版本的信息?
答案 0 :(得分:2)
根据您的问题,您似乎想要专门获取由gated build签入的更改集列表,然后获取已更改文件的列表。
在TFS 2010中,CheckInGatedChanges没有提供它提交签到的变更集列表,因此您需要依赖签入时创建的构建信息节点。
从您的自定义活动中,您可以从工作流中获取IBuildDetail对象,然后使用它来查询类型为CheckinOutcome的构建信息节点。您可以阅读两个字段" ChangesetId"和" CheckInCommitted"来自此信息节点。确保CheckInCommitted等于"成功"。
要从工作流中获取IBuildDetail对象,您需要将InArgument属性添加到自定义活动:
public InArgument<IBuildDetail> Build { get; set; }
然后在您的代码活动中,使用:
IBuildDetail build = Build.Get(context);
如果要创建复合活动,可以使用GetBuildDetail活动来获取IBuildDetail对象。
希望它有所帮助。