【问题标题】:CruiseControl.NET automated build version numbersCruiseControl.NET 自动构建版本号
【发布时间】:2011-10-10 02:14:08
【问题描述】:

这是一个复杂的问题,所以我希望我能解释清楚。

背景

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

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

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

版本号

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

后备箱

  • 格式:[Major].[Merge].[Release].00 即 42.01.02.00
  • 重大:系统号
  • Merge:如果分支被合并则增加
  • 发布:在错误修复中增加

分公司

  • 格式 [Major].00.[Stream].[Release] 即 42.00.01.01
  • 重大:系统号
  • Stream:Stream 编号,将其链接到其他组件以进行增强
  • 发布:在错误修复中增加

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

问题

毕竟我希望你能理解我的问题。

  1. 我可以对自动化流程进行哪些总体改进?
  2. 您认为在开始构建之前应该知道版本号吗?
  3. 自动化构建系统是否应该自动增加版本号?
  4. 我应该考虑更改版本号格式吗?
  5. 任何其他的cmet,我真的需要更多的意见。

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

注意事项

语言是 C++,平台是 Windows,源代码控制是 CVS。

【问题讨论】:

  • 您是否在 Cruise control .net 中为分支和主干创建单独的项目?
  • 是的,主干项目将继续进行,而分支项目将根据需要添加和删除。

标签: visual-studio-2008 cruisecontrol.net versioning nant


【解决方案1】:

您可以将构建后事件添加到您的项目中,该事件会将最新的构建号(以您想要的任何格式)写入源文件夹中的文本文件,例如 label.txt。

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

<labeller type="fileLabeller">
   <labelFilePath>ProjectFolder\label.txt</labelFilePath>
   <allowDuplicateSubsequentLabels>true</allowDuplicateSubsequentLabels>
</labeller>

【讨论】:

  • 但是文档说“文件是在第一个预构建任务执行之前读取的。”,那么这行得通吗? confluence.public.thoughtworks.org/display/CCNET/File+Labeller
  • 我的意思是,如果您从 Visual Studio 运行代码,它将在文本文件中创建标签并将该文件连同源代码一起提交。所以在下一个 ci 构建中,它将在文本文件中显示标签
  • 啊,是的,我明白了。我在考虑更多的构建,其中构建号在构建进行之前是未知的(void 的问题 2)。感谢您的澄清。
猜你喜欢
  • 2012-08-29
  • 1970-01-01
  • 1970-01-01
  • 2015-12-13
  • 1970-01-01
  • 1970-01-01
  • 2017-07-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多