2013-11-05 54 views
0

我有一个jenkins作业,运行一个java应用程序使用exec-maven-plugin exec:java的目标。我想要的是从这个Java应用程序控制生成的结果。具体来说,我想基于java代码中的某些逻辑将构建标记为不稳定。事情是这样的控制jenkins从java构建

if (tests.failed()) { 
    jenkins.markUnstable(); 
} 

我知道詹金斯-CLI罐子的,但我不希望启动一个进程来运行jar当我知道詹金斯是用Java编写的,并且有可能是一个API做像这样的东西。我想甚至詹金斯cli正在使用这个相同的api我正在寻找。

有谁知道如何做到这一点?测试不是单元测试,它们是一些构建工件的自定义验证

回答

1

我不认为这是可能的,Jenkins API中没有这样的功能。这样做的正确方法是将您的应用程序作为Jenkins中的测试(单元或性能)。应用程序应该生成一个xml报告,Jenkins可以使用它来决定它是失败还是成功,并取决于结果是否停止(或失败)构建。

+0

我明白了。无赖。 关于如何做你的建议的任何指导方针?我可以以junit格式或其他方式生成XML,但在此之后,我如何告诉jenkins采取这种处理方式来决定构建的命运? – Hilikus

+0

这不是最干净的解决方案,但我会使用[Jenkins Performance Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Performance+Plugin)来解析junit(xml)或jmeter(jtl)输出。我将修改应用程序以junit或jmeter格式生成此类输出/文件。生成的文件可以非常简单。应该使用插件中的_Performance threshold_选项来确定构建何时标记为不稳定或失败。 – ragnor

+0

我会试试,谢谢 – Hilikus