TFS 2010扩展了gated build以将changeset id发送到另一个系统

时间:2012-01-20 17:20:17

标签: tfs tfs2010 build-automation

我正在扩展一个门控构建以与第三方系统集成。我最想做的是将变更集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中。

我的问题是,如何在自定义活动中获取有关此特定版本的信息?

1 个答案:

答案 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对象。

希望它有所帮助。