我目前正在开发一个从 Jenkins 构建中检索结果的简单插件。我正在扩展通知程序并使用build.getResults()
它来获取信息。但是,当我上传插件时,我无法将其设置为构建后操作。
当我运行构建时,它们会中断,build.getResults()
因为我试图在构建仍在运行时获得结果。
我该怎么做才能正确获得构建结果?
2 回答
最好的办法是查看使用通知器扩展点的现有插件(单击以展开实现插件列表)。
检查您是否具有描述符实现(内部)类以及 config.jelly。还要检查 jenkins.out 和 jenkins.err 日志是否有任何异常(例如格式错误的 config.jelly)。
编辑:实际上,这个插件的 Notifier 子类看起来很简单,因为 Notifiers 去:https ://wiki.jenkins-ci.org/display/JENKINS/The+Continuous+Integration+Game+plugin ,尤其是它的GamePublisher.java和相应的config.jelly,它是GameDescriptor.java,它已经成为一个完整的外部类(通常描述符是内部类)。此外,如果您想在 Jenkins 的全局配置中添加选项,则需要global.jelly,但如果您没有此类选项,则可以省略(与 config.jelly 不同,Notifier 必须拥有它,即使它是空的,就像这里一样)。
作为一般说明,当事情不工作时真的很烦人,并且您没有收到任何错误,詹金斯根本不会显示您的东西......如果您只想让事情为您工作,请使用 Groovy构建步骤可能更容易,但如果你想让事情为他人工作,那么做一个像样的完整插件会减少支持请求。
既然这听起来很简单,你确定你需要一个插件吗?看看使用Groovy Postbuild 步骤代替;它们更容易编写。链接中有一些很好的用法示例。如果你决定你真的需要一个插件,看看你是否可以扩展现有的而不是自己编写;这是理解 Jenkins 插件编写的来龙去脉的一种更简单的方法。