詹金斯喜欢建立状态报告页?

时间:2011-03-22 15:38:47

标签: java xml build-process jenkins

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

无论如何,我们公司的某个部分类似于构建状态表格形式的“天气报告”。基本上它会有一个天气图标(Sunny / Cloudy / Thunderstorm),然后在鼠标悬停时它会告诉我们覆盖了多少%的方法,以及有多少构建失败(如2/256)或其他什么。

还有一个蓝色发光指示灯,当项目正在“建造”时会闪烁/发光,并在完成时变为稳定的蓝色......无论如何,这是怎么做到的?< / p>

显然,网页是一些基本的Html / Javascript,我非常确定XML(对于表格)。东西,但....我很困惑你如何获得他们所做的构建状态,(特别是检查完成了多少%的方法?)。那么检查某些东西当前是“已构建”还是已完成(我想它会返回一些“SUCCESS”字符串.....当它完成时,但是当它正在构建时呢......

关于如何做到这一点的任何想法? (而b4有人问“你为什么不问公司”)我宁愿弄清楚如何在测试网站上自己实现它。

我会截取屏幕截图....但我很确定大多数东西都被认为是机密的....我不想被解雇大声笑。但TL; DR您如何制作自己的OWN构建状态检查器。

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

^^这是一个firefox插件的一个例子,sorta做了我正在寻找的东西,但我想创建我自己的而不是使用jenkins(这很棒,但我只是想弄明白他们是怎么做的)< / p>

2 个答案:

答案 0 :(得分:1)

状态页面中的Javascript。

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

一个更高级的版本,它可以避免每隔X秒进行一次轮询,使用像Comet http://en.wikipedia.org/wiki/Comet_(programming)这样的东西,它可以让浏览器保持连接打开,并让服务器发送更新发生。

Jenkins的完成百分比基本上是基于当前构建运行的时间与最近构建完成的时间长短的猜测,所以假设您的服务器端跟踪任务的长度,您可以采取平均值,并且比较当前运行的长度以计算完成百分比。

答案 1 :(得分:0)

如果你想知道Jenkins / Hudson是如何运作的,那么1月份可能会有一个良好的开端their Architecture Documents

如果您想了解简单持续集成服务器的工作原理,您可能需要查看

既简单又用Ruby编写。

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

对于构建进度估计部分(我认为你的意思是“检查完成的方法的百分比”,不是吗?)我观察到Jenkins只是猜测通过关联在这个构建/时间上花费的时间花在这个版本的最后一次运行