是否可以在“运行自定义构建”上自动执行TeamCity Pin功能

是否可以在“运行自定义构建”上自动执行TeamCity Pin功能,teamcity,Teamcity,我正在使用TeamCity的构建步骤将某个构建标记到SVN中,如果我在其中一个标志设置为true的情况下运行自定义构建 然而,在这个构建完成之后,我想自动化TeamCity来锁定刚刚创建的定制构建。这可能吗?我已经读过RESTAPI,但我不确定它是否是解决方案。REST是唯一不用编写java代码就能做到这一点的方法。或者,您可以编写一个插件,用于侦听buildFinished事件并锁定具有特定属性的构建。我通过使用REST API而不是使用插件解决了这个问题 通过使用自定义脚本字段创建命令行生成

我正在使用TeamCity的构建步骤将某个构建标记到SVN中,如果我在其中一个标志设置为true的情况下运行自定义构建


然而,在这个构建完成之后,我想自动化TeamCity来锁定刚刚创建的定制构建。这可能吗?我已经读过RESTAPI,但我不确定它是否是解决方案。

REST是唯一不用编写java代码就能做到这一点的方法。或者,您可以编写一个插件,用于侦听buildFinished事件并锁定具有特定属性的构建。

我通过使用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作为命令行工具调用。

是否有为该事件编写插件的示例?TeamCity发行版包含一个带有各种扩展的示例插件。要在build finid上获得通知,您需要扩展一个类BuildServerAdapter并实现一个方法BuildFinishedRunningBuild。API在这里是错误的,它应该传递SFinishedbuild,它的方法setPinnedboolean是固定的。您可以使用BuildHistory.findentryrrunningbuild.getBuildId获取SFinishedBuild。你可以找到更多信息。谢谢,我想我会选择使用插件。有没有地方我必须写这个插件?或者我可以在TC上进入一个构建步骤,并在其中一个下拉选项中编写这个插件吗?在我的自定义脚本命令行构建步骤中,我将如何调用这个方法?我能回显这个命令吗?它能工作吗?而且,我在寻找buildLocator时遇到了困难,我一直在尝试bt,项目中的号码在哪里,但没有work@neverov:您能否提供指向您所指的示例插件的链接。。。?更好的是,您是否可以更新您的答案,使其包含一个简单的示例类,其中包含导入等内容,这些内容基本上说明了如何执行或实现这一点?