CruiseControl.. NET自动构建版本号



这是一个复杂的问题,所以我希望我解释得足够好。

我正在使用CruiseControl自动化构建过程。NET和NAnt。我遇到的最头疼的问题是版本号格式和CruiseControl。. NET要求在运行构建项目之前从标记器获得标签。

目前,开发人员运行Visual Studio 2008来生成调试、发布和自定义构建。这些配置中的每一个都调用BuildInc(一个自定义工具),它读取文件(version.ver),增加读取的版本号,为可执行属性生成一个.rc2文件,并将新版本写回version.ver。明显的版本。Ver和.rc2发生了更改,需要在开发人员在源代码控制中标记发行版之前检查回源代码。源代码管理中的标签是版本号,即1.2.3.4 -> 1-2-3-4。

当前新的自动构建触发CruiseControl。调用NAnt脚本的。NET项目。NAnt脚本运行Visual Studio并将构建发布到一个发布目录。这工作得很好,NAnt脚本能够通过读取version.ver获得以前和新的版本号。问题是如何获得CruiseControl。. NET标记源并在仪表板上显示标签。新的版本号/标签是在构建期间生成的,要增加的数字是在Visual Studio项目的预链接任务参数中保存的。

版本号

版本号采用独特的格式,并且在主干和开发分支上完成的构建之间是不同的。在分支上完成的构建是为了在完成后合并回主干的增强。

树干

  • 格式:[主要]。(合并)。(释放)。00即42.01.02.00
  • Major: System number
  • Merge:如果分支被合并则递增
  • 发布:增加错误修复

分支

  • 格式[主要]。(流)。[发布]即42.00.01.01
  • Major: System number
  • Stream:流号,将其链接到其他组件以增强
  • 发布:增加错误修复

数字前缀为0,即01、02。这并不适合我遇到的任何工具。(我希望改变这一点)

不管怎样,我希望你能理解我的问题。

  1. 我可以对自动化流程进行哪些改进?
  2. 你认为版本号应该在构建开始之前就知道吗?
  3. 自动构建系统应该自动增加版本号吗?
  4. 我应该考虑改变版本号格式吗?
  5. 还有什么意见吗,我真的需要更多的意见。

如果需要更多的信息,请告诉我。

指出

语言为c++,平台为Windows,源代码控制为CVS。

你可以在你的项目中添加一个post - build事件,它会将最新的build号(以你想要的任何格式)写入一个文本文件,比如label.txt,在你的源文件夹中。

然后添加一个fileLabeller类型的标签来获取最新的版本号,它将从label.txt中获取版本号。

<labeller type="fileLabeller">
   <labelFilePath>ProjectFolderlabel.txt</labelFilePath>
   <allowDuplicateSubsequentLabels>true</allowDuplicateSubsequentLabels>
</labeller>

最新更新