我的公司使用詹金斯(Jenkins)进行自动化的每日构建,并fogbugz跟踪和记录我们的错误修复程序。这一切都很好。
当我们完成了测试发布候选者并准备将其发布给世界时,我们会使用Fogbugz的发行说明报告功能自动生成文本文件,其中包含自上次发布的版本以来发生了什么变化的描述。p>主要是有效的,但问题是我们的发布候选测试可能需要一个月或更长时间才能完成 - 因此,到发布候选人已经通过了测试过程时,我们已经准备好发布它,其他错误修复程序已有被任命为SVN,并在Fogbugz中进行了记录。因此,如果然后我们从Fogbugz生成了发行说明报告,则该报告将包括我们准备发布的发行候选者中实际上并未存在的更改的描述。(*)
对上述问题的简单解决方案是在汇编发布候选人本身的同一天生成发行说明文档;这样,发行说明文档将匹配发布候选人测试的可执行文件的状态。但是,每位释放候选人手工做到这一点有点乏味,容易出错,所以我想做的就是让詹金斯对发行说明文档进行"每日构建",就像每天一样构建程序可执行文件。然后,发行说明文档将与文物目录中的可执行文件一起保存在一起,如果我们决定根据当天的每日构建发布发布候选者,请使用。
我认为这会非常有效,但是我不确定如何让Fogbugz从脚本中生成报告。有办法做到吗?
(*)解决此问题的另一种方法是每次我们开始测试释放候选者时创建一个新的里程碑,但我不想这样做,因为它会使我们的Fogbugz数据库杂乱无章释放候选者被放弃并采用了新的候选者。
我在此问题上取得了一些进展...可以使用Fogbugz'XML API获取XML发行说明。首先,您必须得到一个令牌,如这里所述。
然后,shell脚本可以执行这样的命令:
wget -OReleaseNotes.xml 'https://fogbugz.mycompany.com/api.asp?token=the_token_value_from_above_goes_here&cmd=search&q=fixfor:MyMilestone&cols=ixBug,sCategory,sTitle,sReleaseNotes'
我怀疑有一种更优雅的方法可以做到这一点,如果我可以以HTML或ASCII格式获得数据而不是XML,那就太好了,但这总比没有好。