如何使用 Azure DevOps REST APi 获取构建作业?

mar*_*ark 3 azure-devops azure-pipelines azure-devops-rest-api

因此,我可以获得构建详细信息,但它不包含有关构建作业的任何信息。例如,每个构建作业都在构建代理上运行 - 我如何使用 REST Api 获取此部分?

我们谈论的是 vNext 构建,而不是 XAML。

Sha*_*der 6

您可以在时间线记录中找到所有任务和工作:时间线 - 获取。您可以将此模板粘贴到浏览器中以检查特定构建的结果:

https://dev.azure.com/{组织}/{项目}/_apis/build/builds/{buildId}/timeline

我使用Microsoft.TeamFoundationServer.Client包,这是它的示例:

    static void PrintTimeLine(string TeamProjectName, int BuildId)
    {
        var timeline = BuildClient.GetBuildTimelineAsync(TeamProjectName, BuildId).Result;

        if (timeline.Records.Count > 0)
        {
            Console.WriteLine("Task Name-----------------------------Start Time---Finish Time---Result");
            foreach(var record in timeline.Records)
                if (record.RecordType == "Task")
                Console.WriteLine("{0, -35} | {1, -10} | {2, -10} | {3}",
                    (record.Name.Length < 35) ? record.Name : record.Name.Substring(0, 35), 
                    (record.StartTime.HasValue) ? record.StartTime.Value.ToLongTimeString() : "",
                    (record.FinishTime.HasValue) ? record.FinishTime.Value.ToLongTimeString() : "",
                    (record.Result.HasValue) ? record.Result.Value.ToString() : "");
        }
    }
Run Code Online (Sandbox Code Playgroud)

https://github.com/ashamrai/TFRestApi/blob/master/19.TFRestApiAppQueueBuild/TFRestApiApp/Program.cs