所有
我们有一个测试应用程序,它在Web仪表板中创建自己的报告,我们希望将其添加到Hudson项目页面中进行构建。目前,应用程序将该构建页面的URL输出到控制台日志中。
我想要做的是从控制台日志中提取URL,然后将URL端点的内容添加到该构建的项目页面(也许是IFrame?)。
有一种简单的方法吗?现有的插件也许?可能配置我忽略了?我是从Cruisecontrol来到Hudson,我仍然在处理这些差异。
感谢。
答案 0 :(得分:1)
应该可以通过HTTP POST脚本编辑构建描述:在${BUILD_URL}/submitDescription
处填写表单:
curl --data description="<a href=\"http://foo.bar.com\">foo</a>" ${BUILD_URL}/submitDescription
构建描述将显示在左侧构建历史记录中,因此您可能希望将其保持简短。
答案 1 :(得分:1)
最后,我采用的解决方案是创建一个自定义插件,该插件解析控制台日志,构建URL的ArrayList,并在左上栏中提供“操作”。从那里我可以从我的'bean'(有效的ArrayList包装器)中提取每个URL。之后,在Jenkins页面中创建每个iFrame只是一块Jelly。 我确实在Jelly页面添加了一些Javascript,但是因为iFrames的默认高度对我没用。
果冻:
<script type="text/javascript">
function resizeFrame(f) {
var i = document.getElementById(f);
var s;
s = 100;
i.style.height = s;
s = i.document.body.clientHeight;
//Some odd Javascript re-sizing here, works fine in the debugger..
var ss = s/2.5;
i.style.height = ss+"px";
}
</script>
<table width='100%'>
<j:forEach items="${it.result.getHtmlLogPath()}" var="i" indexVar="index">
<tr>
<td width='100%'>
<iframe id="myFrame${index}" src="${i}" width="100%" frameborder="0" onload="resizeFrame('myFrame${index}');"/>
</td>
</tr>
</j:forEach>
</table>
这对我目前的基本要求很有帮助,如果我有机会将其插件通用化以供其他人使用。