这是我想要完成的事情。
当Team City构建运行时,我想调用我的exe并提供当前的Svn修订号,以及上一次成功构建的修订号(如果有)
我已经编写了一个可以接受这些参数的exe,然后从这两个修订号之间的svn获取提交,以构建一个基本的“更改日志”。然后,exe会写入stdout,以便使用更改日志设置Team City构建参数 - 该参数稍后将在构建中使用。
我已经确定当前版本号的团队城市参数是: build.vcs.number
如何获得上次成功构建的等效内容?
我对我的exe回调到Team City API以获取最后成功构建详细信息的想法持开放态度。如果可以这样做,请有人提供有关的详细信息,即所需的API调用等吗?
答案 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%
步骤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%
步骤2.进行构建
第3步。通过API调用
更新YOUR_PARAMETER
如果有帮助的话,我已经有了使用PowerShell通过API更新参数的代码,但不能假设您正在使用Windows安装。让我知道它是否有用。
希望这有帮助。