我们正在编写一个层,允许我们从另一个应用程序触发 TFS 下的构建。
目的是 Microsoft Dynamics CRM 站点可以触发构建。为了使这更简单,我们编写了一个非常简单的基于 Web 的服务,它允许 Dynamics 站点开始构建,获取一个标识符,然后轮询状态和结果。
构建的触发执行以下操作:
IBuildRequest buildRequest = buildDefinition.CreateBuildRequest();
IQueuedBuild queuedBuild = buildServer.QueueBuild(buildRequest);
然后我们将 queuedBuild 的标识符(Id)返回给客户端。然后它可以使用此标识符轮询服务以查看构建是否仍在运行或已完成。问题是,虽然 queuedBuild 确实让我们可以通过 Build 属性访问实际构建,但只有在构建到达队列头部并启动时才会填充。在此之前,此属性返回 null(否则我们将使用构建标识符)。
好的,所以我想我会继续查询队列中的队列构建。好吧,直到构建完成,然后排队的构建从队列中删除,所以现在我们无法再获取构建信息。
我追求的是一种无状态查询 TFS 以查看触发的构建是否仍在队列中、正在构建或已完成的方法。有没有办法做到这一点?