Team City - 获取上次成功构建的修订号

Dar*_*ell 5 svn teamcity

这是我想要完成的。

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

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

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

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

我对我的 exe 回调到 Team City API 以获取上次成功构建细节的想法持开放态度。如果这样的事情是可能的,请有人提供详细信息,即所需的 API 调用等?

Evo*_*Ltd 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.numberand调用 exe%PARSED_PARAMETER%

步骤 3. 进行构建

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

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

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

更多详细信息可在此处找到 - TeamCity 文档

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

步骤 1. 使用build.vcs.numberand调用 exe%YOUR_PARAMETER%

步骤 2. 进行构建

步骤3.YOUR_PARAMETER通过API调用更新

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

希望这可以帮助。

  • - 哦,还有,要仅获取最后一次成功的构建而不是失败的构建,您需要在 URI 中包含额外的查询字符串参数。像这样:`http://teamcityserver/httpAuth/api/buildTypes/id:GlobalConnect2Web_DeployToDev/builds?count=1&status=SUCCESS` (2认同)