2016-05-12 69 views
0

在我的项目中,我有一个版本号和一个修订号。版本号采用Julian日期格式,每当修订版本号在一天内的每个版本中增加时,该版本号每天都会增加。 例如5月12日=> 133.1,133.2和等 5月13日=> 134.1,134.2和等如何在TeamCity中增加两个不同的版本号

我可以创建两个生成配置,每个递增,但我不知道如何访问其它构建配置参数。

我现在的版本格式%VersionJulDateBuildNum%%build.counter%

回答

0

如果一个构建配置对另一个构建配置具有快照相关性,那么可以使用%dep来引用它的参数。

enter image description here enter image description here

希望这有助于

+0

这就是我一直在寻找的,谢谢! 。我还需要一种方法在每晚构建之后重置下一个版本的修订版本号。有没有办法做到这一点没有PowerShell? –

+0

您需要做的就是将此“next.build = 1”保存到 \ config \ projects \ ProjectName \ buildNumbers \ something.buildNumbers.properties中的项目的.properties文件中。 TBH,如果你有一个每晚触发的构建配置,这取决于实际的构建运行,然后你可以运行一个步骤来重写属性文件的内容。 –

+0

我找到了属性文件,谢谢。什么是修改这个文件并设置next.build = 1的最佳方式?无论如何,除了创建一个执行PowerShell脚本的构建步骤外,还可以执行此操作,该脚本查看文件并执行查找和替换操作。因为这是我能想到的。 –

0

的TeamCity将自动管理的AssemblyVersion属性你,但也有一些注意事项:

它将完全覆盖现有的值。 它将更新解决方案中的所有AssemblyVersion,因此如果您将同一解决方案中的不同项目版本绑定在一起,这可能对您无效。 有了这些警告,这里是如何,我们已经设置它:

在你构建配置的常规设置,内部版本号格式更改为%版本%{0} 在构建参数定义%版本%作为。你的major.minor.patch。 在您的构建步骤中,滚动到屏幕底部并单击添加构建功能。选择AssemblyInfo修补程序。确保Assembly版本格式填充为%build.number%。 就是这样。 TeamCity会将所有程序集信息更新为由%version%和build counter定义的major.minor.patch.build,然后自动将这些更改还原为构建的最后一步。

+0

我在其他岗位见过这个答案。这并没有解决我所要求的。 –

0

TeamCity没有“简单”(或内置)的方法。

我之前见过的一种常见方法是在构建开始时使用Powershell(或Bash)脚本步骤(您可以将其放在所有构建版本可以继承的模板上),该步骤将读取版本号从某处的文本文件(例如,所有构建代理可以看到的网络共享),增加它并更新文件。您可以使用唯一的构建配置标识来命名文件。

另一种更复杂但更优雅的方法是将版本号作为构建配置本身的参数存储,然后通过构建中的步骤使用TeamCity REST API来更新参数递增值。您正在使用的TeamCity来存储你的价值,不必担心网络共享,文本文件,文件锁定这样的话,等


不是真的关系到你的问题,但我会建议如果您还没有作为您使用的版本控制方案的备选方案,那么您可以看看SemVer,哪个(IMO)为您提供更有价值的信息。

相关问题