TeamCity的:与神器的文件版本标记VCS(颠覆)
-
22-07-2019 - |
题
我想创建创建于SVN标签(标签)与文件的版本。
我已经通过获取通过构建生产的主要可执行文件的文件重命名版本的神器。如:MyInstaller-1.2.3.1.exe
。现在,我想创建的SVN称为/tags/1.2.3.1
的标签。我无法找到一个方法来设置这样的事情在标签模式。
目前我的标记仅仅是 “%system.build.number%”
有关如何做到这一点任何想法?
我使用的TeamCity专业版4.5.3(建立9035)
解决方案
正如有人所说,你可以输出构建脚本的执行过程中的版本号,以及TeamCity的将使用该输出标记构建。例如,我的标签我的体型与我投入AssemblyInfo.cs中的版本相同。该版本(主要,次要)部分实际上是在文件中已经,另一部分(建设,修订版)的构建过程中被添加。
从我的msbuild脚本:
<Target Name="Setup">
<!-- Version.txt contains the major and minor version numbers,
The build number and revision come from environment variables
in the next step -->
<Version VersionFile="Version.txt" BuildType="None" RevisionType="None">
<Output TaskParameter="Major" PropertyName="Major" />
<Output TaskParameter="Minor" PropertyName="Minor" />
</Version>
<!-- If you want to build a release without going through the build
server, you should define the following 2 environment variables
when running this build script -->
<!-- BUILD_NUMBER environment variable supplied by the build server -->
<CreateProperty
Value="$(BUILD_NUMBER)">
<Output
TaskParameter="Value"
PropertyName="Build" />
</CreateProperty>
<!-- BUILD_VCS_NUMBER environment variable supplied by the build server -->
<CreateProperty
Value="$(BUILD_VCS_NUMBER)">
<Output
TaskParameter="Value"
PropertyName="Revision" />
</CreateProperty>
<AssemblyInfo CodeLanguage="CS"
OutputFile="Properties\VersionInfo.cs"
AssemblyVersion="$(Major).$(Minor).$(Build).$(Revision)"
AssemblyFileVersion="$(Major).$(Minor).$(Build).$(Revision)" />
<!-- Tell the build server what our actual build number is -->
<Message Text="##teamcity[buildNumber '$(Major).$(Minor).$(Build).$(Revision)']" />
</Target>
您刚刚输出的生成的格式是##teamcity[buildNumber '<buildnum>']
期间版本
其他提示
如果你正在使用Ant,也许你应该得到SVNAnt.jar和尝试的此。
这是我见过的标签惯例是major.minor.svn(如果你使用CI .build)。
您可以包括SVN版本号到您的TeamCity版本号。 对于TeamCity的您的版本号模式,使用的版本号模式字段类似{} build.vcs.number.1。
之后的版本号将包含实际SVN修订号和您的标记图案%system.build.number%将包含它。
希望这有助于 KIR
不隶属于 StackOverflow