如果我运行自定义构建并将其中一个标志设置为 true,我将使用 TeamCity 和构建步骤将某个构建标记到 SVN 中。
但是,在此构建完成后,我想自动化 TeamCity 以固定刚刚创建的自定义构建。这可能吗?我已经阅读了有关 REST API 的信息,但我不确定它是否是解决方案。
如果我运行自定义构建并将其中一个标志设置为 true,我将使用 TeamCity 和构建步骤将某个构建标记到 SVN 中。
但是,在此构建完成后,我想自动化 TeamCity 以固定刚刚创建的自定义构建。这可能吗?我已经阅读了有关 REST API 的信息,但我不确定它是否是解决方案。
我通过使用 REST API 而不是使用插件来解决这个问题。
通过使用自定义脚本字段创建命令行构建步骤,您可以使用 cURL 有效地固定构建。固定已经运行的构建可能需要进行一些修改。
这个 curl 调用固定构建:
curl -v --request PUT %teamcity.serverUrl%/httpAuth/app/rest/builds/id:%teamcity.build.id%/pin -u "TCuser:TCpass"
此 curl 调用添加/编辑特定构建的标签:
curl -v -H "Content-Type:text/plain" -d "Deliverable" %teamcity.serverUrl%/httpAuth/app/rest/builds/id:%teamcity.build.id%/tags -u "TCuser:TCpass"
此外,您应该确保在构建代理上安装/放置一个 curl 可执行文件,以便您可以将 curl 作为命令行工具调用。
REST 是不编写 Java 代码的唯一方法。或者您可以编写一个插件来侦听 buildFinished 事件并在它具有特定属性时固定构建。