IFraming удаленный контент на страницу проекта (из URL-адреса в consoleoutput)?

Все,

У нас есть приложение для тестирования, которое создает собственные отчеты на веб-панели инструментов, которые мы хотели бы добавить на страницу проекта Hudson для сборок. В настоящее время приложение выводит URL-адрес страницы для этой сборки в журнал консоли.

Я бы хотел вытащить URL-адрес из журнала консоли, а затем добавить контент в конечной точке URL-адреса на страницу проекта для этой сборки (возможно, IFrame?).

Есть простой способ сделать это? Возможно, существующий плагин? Возможно, конфиг, который я упустил из виду? Я еду в Хадсон из Cruisecontrol и все еще пытаюсь понять различия.

Спасибо.


person MrChris    schedule 17.08.2011    source источник


Ответы (2)


Должна быть предусмотрена возможность сценария редактирования описания сборки с помощью HTTP POST: введите форму в ${BUILD_URL}/submitDescription:

curl --data description="<a href=\"http://foo.bar.com\">foo</a>" ${BUILD_URL}/submitDescription

Описание сборки будет отображаться в истории сборок слева, поэтому вы можете сделать его кратким.

person Anders Lindahl    schedule 17.08.2011
comment
Извините, возможно, я недостаточно подробно описал проблему. Я хочу добавить контент в основную часть страницы, а не просто пометить сборку (что, по сути, и делает добавление в историю сборки). Некоторые плагины добавляют графики и т. Д. В разделе активов / изменений. Я хотел бы размещать контент в этом месте, но с внешнего веб-сайта - URL-адрес, который я получаю из вывода консоли. Насколько я могу судить, это должен быть плагин java, я прав? Существуют ли плагины для такого рода вещей? Для меня это обычная просьба .. - person MrChris; 22.08.2011

В конце концов, решение, которое я выбрал, заключалось в создании настраиваемого плагина, который анализировал журнал консоли, создавая ArrayList URL-адресов, и вносил «действие» в верхний левый столбец. Оттуда я мог вытащить каждый URL-адрес из своего «bean-компонента» (по сути, оболочка ArrayList). После этого для создания каждого iFrame на странице Jenkins оставалась лишь часть Jelly. Я добавил Javascript на страницу Jelly, однако, поскольку высота 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>    

На данный момент это работает для моих основных требований, если у меня будет возможность, я сделаю общий плагин для других, чтобы работать с ним.

person MrChris    schedule 07.09.2011