【问题标题】:TeamCity 7.x collect commit messages during build - release notesTeamCity 7.x 在构建期间收集提交消息 - 发行说明
【发布时间】:2012-12-07 09:43:07
【问题描述】:

我们的 TeamCity 构建了一个完整的安装程序包,其中包括多个 Web 应用程序、控制台应用程序和 win 表单应用程序。它构成了一个应用程序套件。这些应用程序中的每一个都有自己的 Mercurial 存储库。

我们希望能够自动为每个版本提供发行说明。当将鼠标悬停在构建更改上时,TeamCity 已经在 Web 界面中显示 Mercurial 提交消息。是否有可能在构建期间以某种方式捕获这些消息并将它们提取到代理工作文件夹中的文本文件中?

【问题讨论】:

    标签: mercurial release-management teamcity-7.0


    【解决方案1】:

    我不了解 TeamCity,但我有一个简单的方法,可以将一些软件的提交内容格式化为一个简洁的历史日志,我想这就是您所追求的。也许您可以接受并修改它以满足您的需要 - 它仅使用 mercurial 命令,因此您可以将其添加为构建的依赖项(我的 VC++ 项目有一个构建后步骤,它运行命令并输出到文本文件)。

    我有一个像这样的简单模板:

    $ cat history.template
    changeset = '{tags} {rev}\t{desc|fill68|strip|tabindent}\n'
    start_tags = '\n'
    tag = '{tag},'
    last_tag = '{tag} : {node|short} @ {date|shortdate}\n'
    

    当我使用以下hg 命令创建可用的历史日志时:

    hg log --style history.template -r "reverse(::.) & !desc('Added tag')"
    

    该命令采用工作目录的所有祖先的提交 cmets,输出标签和变更集哈希,以及标签的创建日期,然后是所有相关的更改。这是一个测试仓库的示例hg log -G 输出,显示了defaultrelease 分支:

    @  21[tip]:18   c676cfe95284   2012-12-12 10:12 +0000   rob
    |    Added tag 0.0.5 for changeset d0869f1c84ba
    |
    | o  20   7618cafcfc5d   2012-11-26 17:23 +0000   rob
    | |    More changes indeed
    | |
    | o  19:17   ffc8bef85a2e   2012-11-26 17:22 +0000   rob
    | |    Some additional files were needed
    | |
    o |  18[0.0.5]:15,17   d0869f1c84ba   2012-11-22 17:25 +0000   rob
    |\|    Releasing
    | |
    | o  17   a41d817184ea   2012-11-22 17:25 +0000   rob
    | |    Made the last change
    | |
    | o  16:13   e790e9022e70   2012-11-22 17:24 +0000   rob
    | |    Made some changes using "record"
    | |
    o |  15   15f21a6f554a   2012-11-13 17:03 +0000   rob
    | |    Added tag 0.0.4 for changeset c316b232c95c
    | |
    o |  14[0.0.4]:10,13   c316b232c95c   2012-11-13 17:03 +0000   rob
    |\|    Merging, eh?
    | |
    | o  13   ba00c7045a23   2012-11-13 17:02 +0000   rob
    | |    Modified revset selection for logging
    ...
    

    显示的模板和命令输出如下:

    0.0.5 : d0869f1c84ba @ 2012-11-22
     18     Releasing
     17     Made the last change
     16     Made some changes using "record"
    
    0.0.4 : c316b232c95c @ 2012-11-13
     14     Merging, eh?
     13     Modified revset selection for logging
     12     When logging history select only ancestors of the working directory
     11     Added history logging
    ...
    

    如果您想对命令行或模板进行一些解释,请添加评论。

    【讨论】:

    • 感谢 icabod。这无疑是一个指向正确方向的指针。不确定 - 认为在 TeamCity 构建过程中寻找源代码控制中的更改时可以嵌入这样的命令。如果可以的话,我会添加评论/答案。
    • 正如我所说,我并不真正了解 TeamCity,所以我只是将此命令作为我在 VC++ 中发布的版本的一部分。您可以使用 mercurial 模板做很多事情,因此使用这些模板是一个好的开始。
    • @AlesPotocnikHahonina 你找到这篇文章的解决方案了吗?
    • 嗨内文。不,遗憾的是我没有时间跟进寻找解决方案。 TC 9.x 中可能有一些新内容,但尚未检查。
    猜你喜欢
    • 2021-11-17
    • 1970-01-01
    • 2014-09-20
    • 2014-06-15
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多