我正在尝试每周发布并在TeamCity中运行,并且我很难理解我将如何对其进行版本化。目前版本控制如下
[major].[minor].[buildnumber].[svnrevision]
major = major release
minor = incremented on release (weekly-basis) to production
buildnumber = teamcity's autoincremented build number
svnrevision = revision number from svn
这是否意味着每周,在创建标签之后,我将不得不为新版本创建单独的Build Configuration,这样我就可以像这样增加次要版本?
1.1。{0}。%build.vcs.number。*%
到
1.2。{0}。%build.vcs.number。*%
并将新的构建配置从trunk
指向tags\release-1.1.0
文件夹?
有没有更简单的方法来做到这一点?
答案 0 :(得分:1)
在TeamCity 6及更高版本中,您可以拥有多个构建步骤。
您可以在实际构建之前创建初始构建步骤,该构建步骤使用自定义MSBuild任务。这将检查所有项目链接到的全局AssemblyInfo.cs文件(请参阅Automatic assembly version number management in VS2008)以获取更多详细信息),从文件中获取版本号,递增次要修订,将新值写回,并签入更新的文件。
然后,其他构建步骤将运行构建和标记。
您可以使用服务消息从构建脚本向TeamCity传达更新,包括报告内部版本号,请参阅http://confluence.jetbrains.net/display/TCD65/Build+Script+Interaction+with+TeamCity#BuildScriptInteractionwithTeamCity-ReportingBuildNumber
答案 1 :(得分:1)
我想我对于为什么在代码库版本号发生变化时将构建配置从主干更改为标记/发布文件夹有点困惑。
如果我这样做,我只需创建一个从主干构建的配置。每周一次,你可以提升版本号,比如在TeamCity配置屏幕中从1.1.x.x到1.2.x.x,并继续从trunk建立。下周你将它升级到1.3.x.x并继续从主干构建。
通常标签只是及时的快照,它是用于及时制作某个版本的确切来源。我希望你的标签构建文件夹看起来更像\ tags \ release-1.1.232.3232等。
有时您可能需要使用特定标记并从中创建分支。也就是说,如果您需要在发布下一个版本(从主干)之前处理以前的版本以执行一些错误修正。在这种情况下,我会创建一个新的配置来进行分支构建,然后代码库就像\ branches \ release-1.1.0
现在你有一个主干配置,一个可能是1.2或1.3,并且在分支配置为1.1或类似的情况下保持递增。稍后您可以将分支配置用于另一个版本号,因为错误修正在1.1中完成,就像您建议使用标记一样。
在我看来,再次阅读这篇文章可能是你使用分支作为标签的概念......