团队城市 - 获取上次成功构建的修订号

时间:2015-05-26 15:29:07

标签: svn teamcity

这是我想要完成的事情。

当Team City构建运行时,我想调用我的exe并提供当前的Svn修订号,以及上一次成功构建的修订号(如果有)

我已经编写了一个可以接受这些参数的exe,然后从这两个修订号之间的svn获取提交,以构建一个基本的“更改日志”。然后,exe会写入stdout,以便使用更改日志设置Team City构建参数 - 该参数稍后将在构建中使用。

我已经确定当前版本号的团队城市参数是:     build.vcs.number

如何获得上次成功构建的等效内容?

我对我的exe回调到Team City API以获取最后成功构建详细信息的想法持开放态度。如果可以这样做,请有人提供有关的详细信息,即所需的API调用等吗?

1 个答案:

答案 0 :(得分:4)

之前我已经完成了这项工作,通过在两个修订版之间获取提交注释来自动化TFS的发行说明。

实现此目的有两种方法,具体取决于您是否使用 build.vcs.number 作为版本号的一部分 - 如果您这样做,您将能够获得构建号码通过查询API进行上一次构建。您可以在常规浏览器中浏览API,只需将buildTypeId替换为URL即可查看结果。

<强> http://tcserver/httpAuth/api/buildTypes/id:YOUR_ID_HERE/builds?count=1

您可以查询此数据集并提取属性值,并根据您使用它的方式将其分开。

因此,在这种情况下,构建配置的一般构成将是

步骤1.调用API并从xml属性

解析先前的变更集编号

步骤2.使用build.vcs.number%PARSED_PARAMETER%

调用exe

步骤3.进行构建

如果您不使用它来构成版本号的一部分,那么您需要一个步骤将此值保存到变量中,该变量应该在构建结束时执行。我发现必须通过将值发布到API以使其在TeamCity中持续存在来完成,否则这将变得非常短暂。

对参数的网址执行HTTP PUT操作,您可以更新该值。你参数的url看起来像这样

<强> http://tcserver/httpAuth/app/rest/buildTypes/id:YOUR_ID_HERE/parameters/PARAMATER_NAME

更多细节可以在这里找到 - TeamCity Documentation

因此,在这种情况下,构建配置的一般构成将是

步骤1.使用build.vcs.number%YOUR_PARAMETER%

调用exe

步骤2.进行构建

第3步。通过API调用

更新YOUR_PARAMETER

如果有帮助的话,我已经有了使用PowerShell通过API更新参数的代码,但不能假设您正在使用Windows安装。让我知道它是否有用。

希望这有帮助。