4

我想在 SVN 中创建一个带有文件版本的标签(标签)。

我已经通过获取构建生成的主要可执行文件的文件版本来重命名工件。如:MyInstaller-1.2.3.1.exe。现在我想在 SVN 中创建一个名为/tags/1.2.3.1. 我找不到在标签模式中设置这种东西的方法。

目前我的标签只是“%system.build.number%”

关于如何做到这一点的任何想法?

我正在使用 TeamCity 专业版 4.5.3(内部版本 9035)

4

3 回答 3

7

正如有人提到的,您可以在构建脚本执行期间输出构建号,而 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>']

于 2010-02-02T18:48:11.773 回答
0

如果您使用的是 Ant,也许您应该获取 SVNAnt.jar 并尝试一下

我看到的标签约定是major.minor.svn(如果您使用CI,则为.build)。

于 2009-06-24T21:54:28.477 回答
0

您可以在 TeamCity 内部版本号中包含 SVN 修订号。对于 Teamcity 中的内部版本号模式,请在内部版本号模式字段中使用类似 {build.vcs.number.1} 的内容。

在该版本号之后将包含实际的 SVN 修订号,并且您的标签模式 %system.build.number% 也将包含它。

希望这会有所帮助,KIR

于 2009-08-24T09:26:51.343 回答