Teamcity 自定义内部版本号生成器

标签 teamcity build-numbers

我们的 Teamcity 版本当前生成格式为 1.0.0.[SVN REVISION] 的版本号,并将其传递到 MSBUILD。

我需要将其更改为格式 1.0.[DLL VERSION].[SVN REVISION],我们在其中插入依赖 dll 的去点版本。例如,如果我们的依赖 dll 是版本 1.2.3.4,则生成的版本数字将为 1.0.1234。[SVN REVSION]。

依赖的 dll 是构建源的一部分,所以我希望我可以使用构建参数和一个小 exe 来执行一些操作,将其与版本信息相结合,但看不到任何通过 UI 合并它的方法。

如果这可能的话有什么想法吗?

最佳答案

您可以在构建脚本执行期间输出构建号,teamcity 将使用该输出来标记构建。例如,我使用与放入 AssemblyInfo.cs 中的版本相同的版本来标记我的构建。该版本的一部分(主要、次要)实际上已经在文件中,另一部分(构建、修订)在构建期间添加。

来 self 的 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>']

关于Teamcity 自定义内部版本号生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7966017/

相关文章:

android - 使用 teamCity 构建到 s3 后上传 ipa 和 apk

c++ - 获取 scons 以生成新的内部版本号

android - 如何自定义 AOSP 内部版本号?

visual-studio - 如何将程序集版本号 1 增加 1

continuous-integration - 如何使 teamcity 的 svn checkout 更加冗长?

continuous-integration - 让 TeamCity 与 ClearCase 一起工作

ios - 模拟器启动等待 120 秒超时

git - 如何知道一个标签是否快进到 BARE 存储库中的另一个标签?

maven-2 - Maven + Mercurial 用于构建编号