Applied pipeline compatibility patch to summary report plugin... doesn't seem to work, maybe operator error?

159 views
Skip to first unread message

Jonathan Hodgson

unread,
Jul 7, 2016, 6:37:13 AM7/7/16
to Jenkins Developers
Hi,

This is my first time trying anything regarding building plugins, so perhaps I'm doing something wrong.

I) I installed maven 3 onto a linux  machine

2) created a settings.xml file for it with the contents shown in the "Setting up Environment" section of this page

3) Checked out the latest summary report plugin code from here 

4) Downloaded pull request 7 as a patch and applied it
- At this point I did get a couple of warning about line endings.

5) mvn install
- Build Successful

6) Copied "target" folder to another machine (so I could get to it from my browser)

7) In jenkins, went to Manage plugins, advanced, upload plugin... selected "summary_report.hpi" and uploaded

8) restarted Jenkins
- I can now add a summary report to a normal job, so it would seem the plugin is loaded, it also shows on the "installed" list in Manage Plugins

9) Added the sample script from this page to a pipeline job

    writeFile file: 'report.xml', text: '''\
<section name="Session1">
    <field name="Field1" value="Field1 succeeded"/>
</section>'''
    archive 'report.xml'
    step([$class: 'ACIPluginPublisher', name: 'report.xml', shownOnProjectPage: true])

10) started a build, which failed with the following error


java
.lang.UnsupportedOperationException: no known implementation of interface jenkins.tasks.SimpleBuildStep is named ACIPluginPublisher
 at org
.jenkinsci.plugins.structs.describable.DescribableModel.resolveClass(DescribableModel.java:359)
 at org
.jenkinsci.plugins.structs.describable.DescribableModel.coerce(DescribableModel.java:313)
 at org
.jenkinsci.plugins.structs.describable.DescribableModel.buildArguments(DescribableModel.java:257)
 at org
.jenkinsci.plugins.structs.describable.DescribableModel.instantiate(DescribableModel.java:201)
 at org
.jenkinsci.plugins.workflow.steps.StepDescriptor.newInstance(StepDescriptor.java:104)
 at org
.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:135)
 at org
.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:113)
 at groovy
.lang.MetaClassImpl.invokeMethodOnGroovyObject(MetaClassImpl.java:1280)
 at groovy
.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1174)
 at groovy
.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024)
 at org
.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:42)
 at org
.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
 at org
.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
 at com
.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:15)
 at
WorkflowScript.checkoutGroovy(WorkflowScript:11)
 at ___cps
.transform___(Native Method)
 at com
.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:55)
 at com
.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:106)
 at com
.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:79)
 at sun
.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun
.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
 at sun
.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java
.lang.reflect.Method.invoke(Method.java:606)
 at com
.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
 at com
.cloudbees.groovy.cps.impl.CollectionLiteralBlock$ContinuationImpl.dispatch(CollectionLiteralBlock.java:55)
 at com
.cloudbees.groovy.cps.impl.CollectionLiteralBlock$ContinuationImpl.item(CollectionLiteralBlock.java:45)
 at sun
.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun
.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
 at sun
.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java
.lang.reflect.Method.invoke(Method.java:606)
 at com
.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
 at com
.cloudbees.groovy.cps.impl.ConstantBlock.eval(ConstantBlock.java:21)
 at com
.cloudbees.groovy.cps.Next.step(Next.java:58)
 at com
.cloudbees.groovy.cps.Continuable.run0(Continuable.java:154)
 at org
.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:164)
 at org
.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:297)
 at org
.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$000(CpsThreadGroup.java:78)
 at org
.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:206)
 at org
.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:204)
 at org
.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:47)
 at java
.util.concurrent.FutureTask.run(FutureTask.java:262)
 at hudson
.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:112)
 at jenkins
.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
 at java
.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
 at java
.util.concurrent.FutureTask.run(FutureTask.java:262)
 at java
.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
 at java
.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
 at java
.lang.Thread.run(Thread.java:745)


Now I've looked at the code, and ACIPluginPublisher appears to implement SimpleBuildStep.

Beyond that I have no idea where to look.

Have I missed something in my workflow?

regards

Jon

Robert Sandell

unread,
Jul 7, 2016, 9:20:41 AM7/7/16
to jenkin...@googlegroups.com
I'm not sure this is the issue, but the descriptor for ACIPluginPublisher is not by standard conventions a nested class within the Publisher itself but in a separate class in the same package. Perhaps that is messing up the  Publisher to  Descriptor lookup.

/B

--
You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/909df02e-0400-42b5-9b77-d60510abc292%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Robert Sandell
Software Engineer
CloudBees Inc.

Jonathan Hodgson

unread,
Jul 7, 2016, 9:42:14 AM7/7/16
to Jenkins Developers
Ok, that's interesting, but perhaps you could clarify? As I said this is my first foray into plugin development world.

Jonathan Hodgson

unread,
Jul 9, 2016, 8:43:19 AM7/9/16
to Jenkins Developers
Well the pull request has now been officially merged into the code, and while for the life of me I can't see what's significantly different about the code I'm compiling (compairing a fresh checkout of the merged code with my patched version)  or my procedure for building and uploading the plugin, it's now working.

And it seems to do what I need, which is great news.
Reply all
Reply to author
Forward
0 new messages