Continuous integration 如何将持续集成系统与bug跟踪系统集成?

Continuous integration 如何将持续集成系统与bug跟踪系统集成?,continuous-integration,bug-tracking,fogbugz,cruisecontrol.rb,Continuous Integration,Bug Tracking,Fogbugz,Cruisecontrol.rb,我使用cruisecontrol.rb进行CI,使用FogBugz进行bug跟踪,但答案越笼统越好 首先是技术问题:FogBugz有API吗?是否有好的教程,或者更好的预编代码 第二个是程序问题:当构建中断时,CI到底应该在bug跟踪器中放置什么?也许: 标题:“{last committer}破坏了构建!” 正文:“#{错误跟踪}” 我想这是对这个问题的回答的先决条件:我是否应该在我的bug跟踪中加入CI中断?CC附带了一个实用程序,当构建失败时会向您发出警告,它可能不值得在FogBugz中记

我使用cruisecontrol.rb进行CI,使用FogBugz进行bug跟踪,但答案越笼统越好

首先是技术问题:FogBugz有API吗?是否有好的教程,或者更好的预编代码

第二个是程序问题:当构建中断时,CI到底应该在bug跟踪器中放置什么?也许:

标题:“{last committer}破坏了构建!”

正文:“#{错误跟踪}”


我想这是对这个问题的回答的先决条件:我是否应该在我的bug跟踪中加入CI中断?

CC附带了一个实用程序,当构建失败时会向您发出警告,它可能不值得在FogBugz中记录失败的构建-您不需要跟踪立即解决的问题(因为大多数已中断的构建都会这样)


反过来说(FogBugz显示解决问题的签入),您需要一个基于web的存储库浏览器-FogBugz易于配置,以便显示正确的更改。

在我的公司,我们最近采用了(商业)Atlassian堆栈,包括用于问题跟踪的JIRA和用于构建的Bambol。很像微软世界(我猜,我们是一家Java商店),如果你的所有产品都来自同一家供应商,你就会得到紧密集成的好处

有关他们如何实现互操作性的示例,请查看他们的

足够的先令。一般来说,我可以将他们的一般方法总结为:

  • 在bug跟踪器中创建问题(例如:PROJ-123的问题密钥)
  • 提交代码时,将“PROJ-123”添加到提交注释中,以指示此代码更改修复的bug
  • 当CI服务器签出代码时,扫描差异的提交注释。记录与问题密钥的正则表达式匹配的任何字符串
  • 构建完成后,生成一份报告,说明找到了哪些问题密钥
具体到第二个问题:


您的CI不必将任何内容放入bug跟踪器。竹子不会把任何东西放进吉拉。取而代之的是,Atlassian人为JIRA提供了一个插件,该插件将对Bambol进行远程api调用,并询问“Bambol,我(JIRA问题)与什么构建相关?”。这可能是最好的解释。

我使用过的所有CI设置都会发送一封电子邮件(发送到列表),但是如果您确实想要,特别是如果您的团队将FogBugz用作todo系统,您可以在FogBugz 6中打开一个案例。这样你就可以打开箱子了。因此,您可以将其配置为将电子邮件发送到FogBugz的电子邮件提交地址,但API可能允许您执行更多操作,例如将案例分配给最后一个提交人

的回答告诉我,如果您的CI在具有案例编号的提交中发现失败,您甚至可以重新打开现有案例。不过,就像为每一件小事编写一个案例字段一样,CI自动化也有可能“太聪明”,弄错了,令人讨厌。打开一个新的案例可能就足够了

谢谢:这让我想知道我是否应该尝试将我们的设置与FogBugz集成