Rom*_*her 2 sql dashboard jenkins
我正在尝试为jenkins制作一个测试结果的仪表板(由os/hardware/ect标签动态过滤).
jenkins将测试结果从xml文件保存到中央数据库(最好是postgres)的最佳方法是什么?
sql插件似乎被设计为由其他插件使用.
我应该从jenkins.groovy
脚本中调用java sql apis 吗?
几种可能性:
在Grab中使用现有的java sql库
有几个世界级的Java SQL库在那里(https://commons.apache.org/proper/commons-dbutils/,https://github.com/jOOQ/jOOQ),你可以结合你的管道与使用抢.我个人喜欢jooq.然后你在groovy中编写你的特定代码.
@Grab(group='org.jooq', module='jooq', version='3.10.5')
import ...
Run Code Online (Sandbox Code Playgroud)
使用现有的Java库并将其放在类路径中
像上面的解决方案.但是你不用Grab导入库.而是直接从战争中开始jenkins,你维护自己的码头安装(https://wiki.jenkins.io/display/JENKINS/Jetty).这使您可以自由地向类路径添加其他库,然后可以在管道中使用它们.
编写一个java库并将其与Grab或classpath一起使用
而不是使用通用库并在groovy中编写您的特定要求.您可以创建一个库,该库提供满足您需求的API.您可以使用Grab导入它,或者将其添加到应用程序服务器的类路径中.在你的groovy脚本中,你只需要调用特定的API并传递参数.
编写自己的插件
您可以为您的目的编写一个插件,这不是那么困难https://jenkins.io/doc/developer/plugin-development/pipeline-integration/.该插件将文件路径作为参数.合同将是xml文件的结构(xml架构).您还可以添加参数来控制导入.
个人意见:
我会选择"编写一个java库并将其与Grab或classpath一起使用":
@GrabResolver(name='custom', root='http://customserver/repo', m2Compatible='true')
您也可以通过数据库 REST API 来完成。只需在您的管道中调用sh并将工件放入数据库中。
sh("curl http://database:8080/api --verbose -X PUT \
-H "Content-Type: application/xml"
...
)
Run Code Online (Sandbox Code Playgroud)