我想在TFS中创建一个自定义构建步骤(插件),它将在我的外部服务器中调用API。我想将结果从我的服务器发送到TFS并通知作业已完成(大约需要1-2个小时)。然后我才想进入下一个构建步骤。
为此,我需要向服务器发送一个"回拨网址"将输出发送到(一旦完成)。我的问题是我可以在TFS(从我的tfs插件)中打开这么小的Web套接字吗? TFS是否有一个框架?或者我应该在我的插件中附加一个自定义web服务进程来运行这个Web套接字。
此插件将作为构建系统的一部分,只有在我从服务器获得答案后才能完成,并且我需要在摘要构建页面的另一个插件中显示此数据。 / p>
TFS是否支持\具有某些功能,还是应该自己实现整个功能?
答案 0 :(得分:1)
不,不受支持。您可以调用TFS API(例如REST API)来对TFS执行某些操作(例如,队列/停止构建)
您可以以恒定速度运行循环以检查外部服务器的结果,如果结果已完成,则继续运行。
例如(使用PowerShell构建步骤的PowerShell):
$inprocess=true
$loopDelayseconds = 300
while($inprocess)
{
# send request to server and check the result
# if result is finished, set inprocess to false, else call Start-Sleep.
Start-Sleep -s $loopDelayseconds
}
节点:如果任务花费的时间太长,则需要更改构建作业超时值(构建定义>常规>以分钟为单位构建作业超时)。