Каковы правильные вызовы Travis API (или методы библиотеки), чтобы сначала запустить и просмотреть сборку, а затем получить ее статус и журнал сборки?
В одном из моих приложений я хочу запустить сборку Travis CI, "наблюдать" за сборкой, когда она запланирована, выполняется и завершается, а затем получить окончательное состояние сборки и журнал сборки для вывода его в мое приложение.
Я начал с запуска сборки с помощью API, который дает мне Request
И его request.id
, Это работает отлично.
- Тогда я могу получить это
Request
, который включает в себяRequest.state
и встроенныйBuild
И егоBuild.id
вместе сBuild.state
, с использованием/repo/.../request/#id
конечная точка - Я мог бы тогда начать опрос
/build/#id
конечная точка для мониторинга состояния каждую секунду. - Как только сборка закончена, я могу использовать
Job
это является частьюBuild
(по запросу от/build/#id
) скачать журнал с/job/#id/log
и отобразить его в моем приложении.
Все это звучит довольно неэффективно.
Есть ли лучший способ добиться этого?
Есть ли "более быстрый способ" (= меньше запросов) от создания request
в log
?
Можно ли как-то избежать ручного опроса?
1 ответ
Я буду использовать этот ответ для документирования своих собственных исследований, которые могут помочь решить эту проблему:
Travis CI API поддерживает загрузку через
?include
, Используя это, я уже могу получитьJob.id
вRequest
ответ через расширенныйBuild
объекты:?include=request.builds
- Мне не нужно делать еще один запросbuild
конечная точка дляJob.id
, Но так как мне нужно опросить изменения статуса, это не очень помогает.Как предложил @Maël Pedretti в комментариях, Travis поддерживает уведомления о веб-крюках. Представленный объект содержит
id
какойBuild.id
, так что это может заменить часть опроса, которую я описал выше. Поскольку мое приложение работает не только на одном сервере, который можно настроить как URL-адрес webhook, мне нужен серверный компонент с состоянием, который мое приложение могло бы опрашивать или прослушивать. Так что просто торговля лошадьми: /