我想我已经找到了我需要在这里 https://github.com/Microsoft/vsts-tasks/blob/986f8f5112017474962affe58c9ebaf394fb9354/docs/authoring/commands.md
编辑: 证实了这一点正是我需要的。 首先我遍历所有项目并创建初始“初始化”条目,这将确保条目显示在时间轴中,但不是已启动。 guid似乎是必需的,我首先尝试了一个独特的字符串,但由于某种原因,没有工作。
$projectKey = GetSomeProjectKey
$guid = [guid]::NewGuid()
Write-Host $solution.FullName
Write-Host "##vso[task.logdetail id=$($guid);name=$($projectKey);type=build;order=$i;state=Initialized;]"
$guidDictionary.Add("$projectKey", "$guid")
然后在你做的工作循环,确保你将任务设置为inProgress,则设置开始时间,以确保你得到一个持续时间值
$startDate = "$(Get-Date -Format 'yyyy/MM/dd HH:mm:ss')"
$projectKey = GetSomeProjectKey
Write-Host "##vso[task.logdetail id=$($guidDictionary[$projectKey]);progress=10;state=InProgress;starttime=$($startDate)]"
当您完成后,关闭任务并与finishtime
$endDate = "$(Get-Date -Format 'yyyy/MM/dd HH:mm:ss')"
Write-Host "##vso[task.logdetail id=$($guidDictionary[$projectKey]);progress=100;state=Completed;result=Succeeded;finishtime=$($endDate)]"
在Web界面中,你现在可以看到有多少时间在每个步骤花费在构建步骤一起的结果,如果你把它沿设置适当的状态。
像这样的东西? https://blogs.technet.microsoft.com/heyscriptingguy/2011/01/29/add-a-progress-bar-to-your-powershell-script/ – Lennart