我正在尝试为 jenkins 的测试结果(由 os/hardware/ect 标签动态过滤)制作一个仪表板。
jenkins 将测试结果从 xml 文件保存到中央数据库(最好是 postgres)的最佳方法是什么?
sql 插件似乎被设计为供其他插件使用。
我应该从 jenkins.groovy
调用 java sql apis 吗?脚本?
最佳答案
几种可能:
将现有的 java sql 库与 Grab 一起使用
有几个世界级的 java sql 库( https://commons.apache.org/proper/commons-dbutils/ , https://github.com/jOOQ/jOOQ ),您可以在管道中与 Grab 一起使用它们.我个人喜欢jooq。然后你用 groovy 编写你的特定代码。
@Grab(group='org.jooq', module='jooq', version='3.10.5')
import ...
使用现有的 Java 库并将其放在类路径中
就像上面的解决方案。但是您不会使用 Grab 导入库。您可以维护自己的码头安装 (https://wiki.jenkins.io/display/JENKINS/Jetty),而不是直接从 war 中启动 jenkins。这使您可以自由地向类路径添加其他库,然后可以在管道中使用这些库。
编写一个 java 库并与 Grab 或 classpath 一起使用
而不是使用通用库并在 groovy 中编写您的特定要求。您创建了一个库,该库提供了满足您需求的 API。您可以使用 Grab 导入它,或者将其添加到应用程序服务器的类路径中。在您的 groovy 脚本中,您只需要调用特定的 API 并传递参数。
编写自己的插件
您可以为自己的目的编写一个插件,这并不难https://jenkins.io/doc/developer/plugin-development/pipeline-integration/ .该插件将文件路径作为参数。契约将是 xml 文件的结构(xml 模式)。您还可以添加参数来控制导入。
个人意见:
我会选择“编写一个 Java 库并将其与 Grab 或类路径一起使用”:
@GrabResolver(name='custom', root='http://customserver/repo', m2Compatible='true')
关于sql - 将测试数据从 jenkins/hudson 保存到数据库的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48763364/