簡體   English   中英

TeamCity:使用工件的文件版本標記VCS(Subversion)

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

我想在SVN中創建一個帶有文件版本的標簽(標簽)。

我已經通過獲取構建生成的主要可執行文件的文件版本來重命名工件。 如: MyInstaller-1.2.3.1.exe 現在我想在SVN中創建一個名為/tags/1.2.3.1的標簽。 我找不到在標簽模式中設置這樣的東西的方法。

目前我的標簽只是“%system.build.number%”

有關如何做到這一點的任何想法?

我正在使用TeamCity Professional Version 4.5.3(build 9035)

正如有人提到的,您可以在構建腳本執行期間輸出構建號,teamcity將使用該輸出來標記構建。 例如,我使用與AssemblyInfo.cs相同的版本標記我的構建。 該版本的一部分(Major,Minor)實際上已經在文件中,另一部分(Build,Revision)在構建期間被添加。

從我的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(和.build,如果你正在使用CI)。

您可以將SVN修訂號包含在TeamCity內部版本號中。 對於Teamcity中的構建號碼模式,請在構建號碼模式字段中使用類似{build.vcs.number.1}的內容。

在該構建號之后將包含實際的SVN修訂號,並且您的標簽模式%system.build.number%也將包含它。

希望這有幫助,KIR

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM