首先启动并观看构建并随后检索其状态和构建日志的正确Travis API调用(或库方法)是什么?

时间:2018-12-09 15:36:04

标签: travis-ci travis-rb travis-ci-api

在我的一个应用程序中,我想触发Travis CI构建,按计划,运行和完成“监视”构建,然后检索最终构建状态和构建日志以将其输出到我的应用中。 / p>

我从triggering a build with the API开始,这给了我Request及其request.id。效果很好。

  • 然后,我可以使用{{}来检索此Request,其中包括Request.state和嵌入式Build及其Build.idBuild.state 3}}。
  • 然后我可以开始轮询/repo/.../request/#id endpoint来每秒监视一次状态。
  • 构建完成后,我就可以使用Job中的Build(从/build/#id请求时)从/build/#id endpoint下载日志并显示在我的应用程序中。

这听起来效率很低。

是否有更好的方法来实现这一目标?
从创建requestlog是否有一种“快速方式”(=更少的请求)?
我可以避免手动轮询吗?

1 个答案:

答案 0 :(得分:0)

我将使用此答案记录自己的研究,这可能有助于解决此问题:

  1. Travis CI API支持eager loading via ?include。使用此方法,我已经可以通过扩展的Job.id对象在Request响应中获得Build?include=request.builds-我不必对{{1 build的}}端点。但是,由于我需要查询状态更改,因此并没有太大帮助。

  2. 正如@MaëlPedretti在评论中建议的那样,Travis支持webhook notificationssubmitted object包含一个Job.id id,因此它可以代替我上面描述的轮询部分。由于我的应用程序不仅仅运行在一台可以配置为webhook url的服务器上,因此我需要一个有状态的服务器组件,我的应用程序可以轮询或监听该组件。因此,只做一匹马:/