2

有点随机的问题,但我们公司使用 Jenkins http://jenkins-ci.org/

无论如何,我们公司有一个部分,就像构建状态表格形式的“天气报告”。基本上它会有一个天气图标(晴天/阴天/雷暴),然后在鼠标悬停时它会告诉你有多少方法被覆盖,有多少构建失败(比如 2/256)或其他东西。

还有一个蓝色发光指示器......当项目正在“建造”时闪烁/发光,并在完成时变为纯蓝色......无论如何,这究竟是如何完成的?

显然,该网页是一些基本的 Html/Javascript 并且我很确定 XML(用于表格)。东西,但是....我很困惑你如何像他们一样获得构建的状态,(特别是检查完成的方法的百分比?)。以及检查当前是否正在“构建”或已完成(我想它会返回一些“SUCCESS”字符串......当它完成时,但是它什么时候正在构建......

关于如何完成的任何想法?(和 b4 有人问“你为什么不问公司”)我宁愿弄清楚如何在测试网站上自己实现它的基础知识。

我会截屏....但我很确定大多数东西都被认为是机密的....而且我不想被解雇哈哈。但是 TL;DR 你将如何制作自己的构建状态检查器。

编辑:http ://wiki.jenkins-ci.org/display/JENKINS/Firefox+Add-on+Build+Monitor

^^ 这是一个firefox插件的例子,它可以做我正在寻找的东西,但我想创建自己的而不是使用jenkins(这太棒了,但我只想弄清楚他们是如何做到的)

4

2 回答 2

1

状态页面中的 Javascript。

简单的版本会使用回调来每隔 X 秒运行一次,以使用类似http://api.jquery.com/jQuery.ajax/的方式从服务器请求状态信息,然后相应地更新页面。

一个更高级的版本,它避免需要每 X 秒轮询一次,将使用 Comet http://en.wikipedia.org/wiki/Comet_(programming )) 之类的东西,它允许浏览器保持连接打开,并且服务器在更新发生时发送更新。

Jenkins 中的完成百分比基本上只是基于当前构建运行的时间与最近的构建完成所花费的时间的猜测,因此假设您的服务器端跟踪任务的长度,您可以取一个平均值,然后比较长度当前运行的计算完成百分比。

于 2011-03-24T08:15:38.023 回答
0

如果你想知道 Jenkins/Hudson 是如何工作的,一个好的开始可能是他们在一月份发布的架构文档:

如果你想研究一个简单的持续集成服务器是如何工作的,你可能想看看

它们既简单又用 Ruby 编写。

至于 jenkins 的实时状态指示器,请为自己配备Firebug并在状态页面上查看。您应该看到一堆 Ajax 请求正在进行。

对于构建进度估计部分(我认为这就是“检查完成的方法的百分比”的意思,不是吗?)我观察到詹金斯只是猜测,通过将花费在此构建上的时间/花费在最后一次运行上的时间联系起来建立.

于 2011-03-24T07:57:44.980 回答