TeamCity: labeling VCS (Subversion) with an artifact's file version

后端 未结 3 1513
不知归路
不知归路 2020-12-30 17:17

I want to create create a label (tag) in the SVN with a file\'s version.

I\'m already renaming the artifact by getting the file version of the main executable produ

相关标签:
3条回答
  • 2020-12-30 18:04

    If you're using Ant, maybe you should get SVNAnt.jar and try this.

    The convention that I've seen for labeling is major.minor.svn (and .build if you're using CI).

    0 讨论(0)
  • 2020-12-30 18:06

    As someone mentioned, you can output the build number during the execution of the build script, and teamcity will use that output to label the build. For example, I label my build with the same version that I put into AssemblyInfo.cs. Part of that version (Major, Minor) is actually in the file already, the other part (Build, Revision) gets added during the build.

    From my msbuild script:

    <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>
    

    you just output the version during the build the format is ##teamcity[buildNumber '<buildnum>']

    0 讨论(0)
  • 2020-12-30 18:12

    You can include SVN revision number to your TeamCity build number. For your build number pattern in Teamcity, use something like {build.vcs.number.1} in the build number pattern field.

    After that build number will contain actual SVN revision number, and your labeling pattern %system.build.number% will contain it as well.

    Hope this helps, KIR

    0 讨论(0)
提交回复
热议问题