-->

TeamCity的:与神器的文件版本标记VCS(颠覆)(TeamCity: labeling VCS

2019-06-24 03:13发布

我想创建创建于SVN标签(标签)与文件的版本。

我已经通过获取通过构建生产的主要可执行文件的文件重命名版本的神器。 如: MyInstaller-1.2.3.1.exe 。 现在我想创建一个名为SVN的标签/tags/1.2.3.1 。 我无法找到一个方法来设置这样的事情在标签模式。

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

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

我使用的TeamCity专业版4.5.3(建立9035)

Answer 1:

正如有人所说,你可以输出构建脚本的执行过程中的版本号,以及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>']



Answer 2:

如果你正在使用Ant,也许你应该得到SVNAnt.jar和尝试这个 。

我已经看到了标签的约定是major.minor.svn(和.build如果你使用CI)。



Answer 3:

您可以包括SVN版本号到您的TeamCity版本号。 对于TeamCity的您的版本号模式,使用的版本号模式字段类似{} build.vcs.number.1。

在此之后的版本号将包含实际SVN版本号和你的标签图案%system.build.number%将包含它。

希望这有助于KIR



文章来源: TeamCity: labeling VCS (Subversion) with an artifact's file version