Как получить продолжительность каждого шага сборки

#teamcity #rest

#teamcity #отдых

Вопрос:

Вот конфигурация сборки с 24 шагами. С помощью API я могу получить общую продолжительность времени сборки. Как я могу получить длительность каждого из 24 шагов? https: //[server]/app/rest/builds/id:[123]/

 <startDate>20210122T123050 0000</startDate>
<finishDate>20210122T123115 0000</finishDate>
 

Ответ №1:

Вы можете упростить это, используя служебные сообщения TeamCity

Например, вы можете использовать сообщения о ходе выполнения

 ##teamcity[progressMessage '<message>']
 

или статистика:

 ##teamcity[buildStatisticValue key='<valueTypeKey>' value='<value>']
 

Ответ №2:

вы можете использовать https://[tc_server]/app/rest/builds/id:[id]/statistics api

 curl -u user:password https://myserver.com/app/rest/builds/id:123/statistics -H accept:application/json

{"count":18,"property":[{"name":"ArtifactsSize","value":"28734525"},{"name":"BuildDuration","value":"2860858"},{"name":"BuildDurationNetTime","value":"2852922"},{"name":"buildStageDuration:artifactsPublishing","value":"3976"},{"name":"buildStageDuration:buildFinishing","value":"221"},{"name":"buildStageDuration:buildStepRUNNER_1","value":"26715"},{"name":"buildStageDuration:buildStepRUNNER_4","value":"1517192"},{"name":"buildStageDuration:buildStepRUNNER_5","value":"1233555"},{"name":"buildStageDuration:buildStepRUNNER_6","value":"75460"},{"name":"buildStageDuration:firstStepPreparation","value":"2"},{"name":"buildStageDuration:sourcesUpdate","value":"3408"},{"name":"buildStageDuration:toolsUpdating","value":"1"},{"name":"BuildTestStatus","value":"1"},{"name":"queueWaitReason:Checking_for_changes_is_in_progress","value":"810"},{"name":"serverSideBuildFinishing","value":"92"},{"name":"SuccessRate","value":"1"},{"name":"TimeSpentInQueue","value":"1057"},{"name":"VisibleArtifactsSize","value":"18049068"}]}
 

в ответе указаны длительности этапов сборки
{"name":"buildStageDuration:buildStepRUNNER_1","value":"26715"},
{"name":"buildStageDuration:buildStepRUNNER_4","value":"1517192"},
{"name":"buildStageDuration:buildStepRUNNER_5","value":"1233555"},
{"name":"buildStageDuration:buildStepRUNNER_6","value":"75460"}

ps в ответе указаны не все этапы сборки (№ 2 и 3). это означает, что они были пропущены или, возможно, длительность составляла <1 с