Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-35096

Add support for Jenkins Pipeline to the cppcheck-plugin

    XMLWordPrintable

Details

    Description

      Add support for Jenkins Pipeline with Cppcheck Plugin
      https://github.com/jenkinsci/pipeline-plugin/blob/master/COMPATIBILITY.md

      Attachments

        Issue Links

          Activity

            nickbrown Nicholas Brown added a comment - I think what's needed is to implement the `SimpleBuildStep` class interface. similar to what the xunit plugin does: https://github.com/jenkinsci/xunit-plugin/blob/master/src/main/java/org/jenkinsci/plugins/xunit/XUnitPublisher.java#L63 cppcheck does not implement this: https://github.com/jenkinsci/cppcheck-plugin/blob/master/src/main/java/org/jenkinsci/plugins/cppcheck/CppcheckPublisher.java#L32 See also: https://github.com/jenkinsci/cobertura-plugin/issues/50
            jglick Jesse Glick added a comment - https://github.com/jenkinsci/pipeline-plugin/blob/master/DEVGUIDE.md

            Hi,
            Do you know by chance the status of this issue. Can one now invoque Cppcheck in a pipeline and upload the xml output file?
            thanks.

            nabilg Nabil Ghodbane added a comment - Hi, Do you know by chance the status of this issue. Can one now invoque Cppcheck in a pipeline and upload the xml output file? thanks.

            I did some experiments here: https://github.com/raynigon/CppCheckV2-Plugin
            i dont know if its possible to merge this with the original CppCheck Plugin in the future.

            nabilg Eventually this could solve your Problem, but be carefull its currently under Development

            raynig Simon Schneider added a comment - I did some experiments here: https://github.com/raynigon/CppCheckV2-Plugin i dont know if its possible to merge this with the original CppCheck Plugin in the future. nabilg Eventually this could solve your Problem, but be carefull its currently under Development

            raynig I would love to try your experimental plugin. Any known issues?

            martinichka Marten Lootsma added a comment - raynig I would love to try your experimental plugin. Any known issues?
            marcosteffan Marco Steffan added a comment -

            Pushed branch https://github.com/jenkinsci/cppcheck-plugin/tree/jenkins-35096_cppcheck_plugin_pipeline_support . Anybody interested in that issue, feel free to comment on the changes.

            marcosteffan Marco Steffan added a comment - Pushed branch https://github.com/jenkinsci/cppcheck-plugin/tree/jenkins-35096_cppcheck_plugin_pipeline_support . Anybody interested in that issue, feel free to comment on the changes.

            Thank you for making the update. The Pipeline Syntax code snippets now includes a 'step: General Build Step' > 'Publish Cppcheck results' step.

            However I am having some difficulty in correctly configuring the plugin. The 'Generate Pipeline Script' button produces the following when trying to make code for a 'foo.xml' report:

            step <object of type org.jenkinsci.plugins.cppcheck.CppcheckPublisher>

            That does not work at all in a Pipeline Jenkinsfile. Based on another pipeline step I tried `step([$class: 'CppcheckPublisher'])` and `step([$class: 'CppcheckPublisher', cppcheckReportPattern: 'cppcheck.xml'])` but those both try to check for a '**/cppcheck-result.xml' file.

            Is there any documentation for the intended syntax?
            Could the Pipeline Syntax Snippet Generator output be fixed?

            tafthorne Thomas A. F. Thorne added a comment - Thank you for making the update. The Pipeline Syntax code snippets now includes a 'step: General Build Step' > 'Publish Cppcheck results' step. However I am having some difficulty in correctly configuring the plugin. The 'Generate Pipeline Script' button produces the following when trying to make code for a 'foo.xml' report: step <object of type org.jenkinsci.plugins.cppcheck.CppcheckPublisher> That does not work at all in a Pipeline Jenkinsfile. Based on another pipeline step I tried `step( [$class: 'CppcheckPublisher'] )` and `step( [$class: 'CppcheckPublisher', cppcheckReportPattern: 'cppcheck.xml'] )` but those both try to check for a '**/cppcheck-result.xml' file. Is there any documentation for the intended syntax? Could the Pipeline Syntax Snippet Generator output be fixed?

            Renaming my report file to match the expected default got me a little bit further. The build completed. However I ended up with an issue when I clicked the `Cppcheck Results` link added to the side of the build. See https://issues.jenkins-ci.org/browse/JENKINS-41704 for further details.

            tafthorne Thomas A. F. Thorne added a comment - Renaming my report file to match the expected default got me a little bit further. The build completed. However I ended up with an issue when I clicked the `Cppcheck Results` link added to the side of the build. See https://issues.jenkins-ci.org/browse/JENKINS-41704 for further details.
            marcosteffan Marco Steffan added a comment -

            A documentation on that will be provided (just don't know yet where to put it correctly...): Until that here is my test-command for the pipeline:
            stage "cppcheck"
            step([$class: 'CppcheckPublisher',
            pattern: "testcppcheck*.xml",
            ignoreBlankFiles: false, threshold: "19",
            allowNoReport: false,
            newThreshold: "", failureThreshold: "",
            newFailureThreshold: "", healthy: "", unHealthy: "",
            severityError: true,
            severityWarning: true,
            severityStyle: true,
            severityPerformance: true,
            severityInformation: true,
            severityNoCategory: true,
            severityPortability: true,
            xSize: 1000, ySize: 200,
            numBuildsInGraph: 0,
            displayAllErrors: true,
            displayErrorSeverity: true,
            displayWarningSeverity: true,
            displayStyleSeverity: true,
            displayPerformanceSeverity: true,
            displayInformationSeverity: true,
            displayNoCategorySeverity: true,
            displayPortabilitySeverity: true])

            marcosteffan Marco Steffan added a comment - A documentation on that will be provided (just don't know yet where to put it correctly...): Until that here is my test-command for the pipeline: stage "cppcheck" step([$class: 'CppcheckPublisher', pattern: "testcppcheck*.xml", ignoreBlankFiles: false, threshold: "19", allowNoReport: false, newThreshold: "", failureThreshold: "", newFailureThreshold: "", healthy: "", unHealthy: "", severityError: true, severityWarning: true, severityStyle: true, severityPerformance: true, severityInformation: true, severityNoCategory: true, severityPortability: true, xSize: 1000, ySize: 200, numBuildsInGraph: 0, displayAllErrors: true, displayErrorSeverity: true, displayWarningSeverity: true, displayStyleSeverity: true, displayPerformanceSeverity: true, displayInformationSeverity: true, displayNoCategorySeverity: true, displayPortabilitySeverity: true])

            Hi Marco Steffan,

            I'd like to give your plugin modifications a try as well. I tried to create the plugin by cloning the repository and building it with maven, but then I ran in some (noob?) problems.

            1. git clone git@github.com:jenkinsci/cppcheck-plugin.git
            2. cd cppcheck-plugin/
            3. git checkout jenkins-35096_cppcheck_plugin_pipeline_support
            4. mvn packge

            Then I got the following error below. Did I do something wrong?

            [INFO] Scanning for projects...
            [ERROR] [ERROR] Some problems were encountered while processing the POMs:
            [FATAL] Non-resolvable parent POM for org.jenkins-ci.plugins:cppcheck:1.22-SNAPSHOT: Failure to find org.jenkins-ci.plugins:plugin:pom:2.16 in https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ line 4, column 13
             @ 
            [ERROR] The build could not read 1 project -> [Help 1]
            [ERROR]   
            [ERROR]   The project org.jenkins-ci.plugins:cppcheck:1.22-SNAPSHOT (/home/marten/Projects/cppcheck-plugin/pom.xml) has 1 error
            [ERROR]     Non-resolvable parent POM for org.jenkins-ci.plugins:cppcheck:1.22-SNAPSHOT: Failure to find org.jenkins-ci.plugins:plugin:pom:2.16 in https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ line 4, column 13 -> [Help 2]
            [ERROR] 
            [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
            [ERROR] Re-run Maven using the -X switch to enable full debug logging.
            [ERROR] 
            [ERROR] For more information about the errors and possible solutions, please read the following articles:
            [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
            [ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException
            
            martinichka Marten Lootsma added a comment - Hi Marco Steffan, I'd like to give your plugin modifications a try as well. I tried to create the plugin by cloning the repository and building it with maven, but then I ran in some (noob?) problems. git clone git@github.com:jenkinsci/cppcheck-plugin.git cd cppcheck-plugin/ git checkout jenkins-35096_cppcheck_plugin_pipeline_support mvn packge Then I got the following error below. Did I do something wrong? [INFO] Scanning for projects... [ERROR] [ERROR] Some problems were encountered while processing the POMs: [FATAL] Non-resolvable parent POM for org.jenkins-ci.plugins:cppcheck:1.22-SNAPSHOT: Failure to find org.jenkins-ci.plugins:plugin:pom:2.16 in https: //repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ line 4, column 13 @ [ERROR] The build could not read 1 project -> [Help 1] [ERROR] [ERROR] The project org.jenkins-ci.plugins:cppcheck:1.22-SNAPSHOT (/home/marten/Projects/cppcheck-plugin/pom.xml) has 1 error [ERROR] Non-resolvable parent POM for org.jenkins-ci.plugins:cppcheck:1.22-SNAPSHOT: Failure to find org.jenkins-ci.plugins:plugin:pom:2.16 in https: //repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ line 4, column 13 -> [Help 2] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch . [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http: //cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException [ERROR] [Help 2] http: //cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException

            Thank you for the example test command. That should be very helpful.

            tafthorne Thomas A. F. Thorne added a comment - Thank you for the example test command. That should be very helpful.
            marcosteffan Marco Steffan added a comment - - edited

            martenlootsma that looks more like an issue with your maven configuration. See the steps here to setup your maven config: https://wiki.jenkins-ci.org/display/JENKINS/Plugin+tutorial#Plugintutorial-SettingUpEnvironment Ensure that you have maven3 (mvn -V) is installed.

            marcosteffan Marco Steffan added a comment - - edited martenlootsma that looks more like an issue with your maven configuration. See the steps here to setup your maven config: https://wiki.jenkins-ci.org/display/JENKINS/Plugin+tutorial#Plugintutorial-SettingUpEnvironment Ensure that you have maven3 (mvn -V) is installed.

            marcosteffan thanks for the pointer. That solved it for me.

            martinichka Marten Lootsma added a comment - marcosteffan thanks for the pointer. That solved it for me.

            Hi marcosteffan, the plugin update is already useful Thank you. One thing which does not work for me yet is the code view. When I click on the line number of an issue I get the raw html in stead of a nice formatted page:

            Cppcheck Results
            
            Content of file TTN_Gateway/firmware/src/custom_http_app.c
            
            <!-- ======================================================== --> <!-- = Java Sourcecode to HTML automatically converted code = --> <!-- = Java2Html Converter 5.0 [2006-02-26] by Markus Gebhard markus@jave.de = --> <!-- = Further information: http://www.java2html.de = --> <div align="left" class="java"> <table border="0" cellpadding="3" cellspacing="0" bgcolor="#ffffff"> <tr> <!-- start source code --> <td nowrap="nowrap" valign="top" align="left"> <code> <a name="1"><font color="#808080">0001</font>&nbsp;</a><font color="#3f5fbf">/*******************************************************************************</font><br /> <a name="2"><font 
            

            Can you reproduce that issue?

            Marten

            martinichka Marten Lootsma added a comment - Hi marcosteffan , the plugin update is already useful Thank you. One thing which does not work for me yet is the code view. When I click on the line number of an issue I get the raw html in stead of a nice formatted page: Cppcheck Results Content of file TTN_Gateway/firmware/src/custom_http_app.c <!-- ======================================================== --> <!-- = Java Sourcecode to HTML automatically converted code = --> <!-- = Java2Html Converter 5.0 [2006-02-26] by Markus Gebhard markus@jave.de = --> <!-- = Further information: http: //www.java2html.de = --> <div align= "left" class= "java" > <table border= "0" cellpadding= "3" cellspacing= "0" bgcolor= "#ffffff" > <tr> <!-- start source code --> <td nowrap= "nowrap" valign= "top" align= "left" > <code> <a name= "1" ><font color= "#808080" >0001</font>&nbsp;</a><font color= "#3f5fbf" >/*******************************************************************************</font><br /> <a name= "2" ><font Can you reproduce that issue? Marten
            marcosteffan Marco Steffan added a comment -

            martenlootsma I could reproduce that report and have fixed it meanwhile - just pull the branch.

            marcosteffan Marco Steffan added a comment - martenlootsma I could reproduce that report and have fixed it meanwhile - just pull the branch.
            martinichka Marten Lootsma added a comment - - edited

            Thank you for your fast update marcosteffan. Unfortunately building the plugin stops at the tests, see stack trace below. Building without the test results in a usable HPI with indeed the reported bug fixed.

            Tests run: 31, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 13.281 sec <<< FAILURE! - in InjectedTest
            com/thalesgroup/hudson/plugins/cppcheck/CppcheckSource/index.jelly(org.jvnet.hudson.test.JellyTestSuiteBuilder$JellyCheck)  Time elapsed: 0.026 sec  <<< FAILURE!
            java.lang.AssertionError: <?jelly escape-by-default='true'?> is missing in file:/home/marten/Projects/cppcheck-plugin/target/classes/com/thalesgroup/hudson/plugins/cppcheck/CppcheckSource/index.jelly
            	at org.jvnet.hudson.test.JellyTestSuiteBuilder$JellyCheck.runTest(JellyTestSuiteBuilder.java:108)
            	at junit.framework.TestCase.runBare(TestCase.java:134)
            	at junit.framework.TestResult$1.protect(TestResult.java:110)
            	at junit.framework.TestResult.runProtected(TestResult.java:128)
            	at junit.framework.TestResult.run(TestResult.java:113)
            	at junit.framework.TestCase.run(TestCase.java:124)
            	at junit.framework.TestSuite.runTest(TestSuite.java:243)
            	at junit.framework.TestSuite.run(TestSuite.java:238)
            	at org.jvnet.hudson.test.junit.GroupedTest.runGroupedTests(GroupedTest.java:67)
            	at org.jvnet.hudson.test.JellyTestSuiteBuilder$JellyTestSuite.doTests(JellyTestSuiteBuilder.java:152)
            	at org.jvnet.hudson.test.JellyTestSuiteBuilder$JellyTestSuite.access$100(JellyTestSuiteBuilder.java:138)
            	at org.jvnet.hudson.test.JellyTestSuiteBuilder$JellyTestSuite$2.call(JellyTestSuiteBuilder.java:160)
            	at org.jvnet.hudson.test.HudsonTestCase$WebClient$5.run(HudsonTestCase.java:1610)
            	at org.jvnet.hudson.test.ClosureExecuterAction.doIndex(ClosureExecuterAction.java:53)
            	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            	at java.lang.reflect.Method.invoke(Method.java:498)
            	at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:335)
            	at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:175)
            	at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:108)
            	at org.kohsuke.stapler.IndexDispatcher.dispatch(IndexDispatcher.java:26)
            	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
            	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
            	at org.kohsuke.stapler.MetaClass$10.dispatch(MetaClass.java:362)
            	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
            	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
            	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
            	at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
            	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
            	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
            	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
            	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)
            	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:126)
            	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
            	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:86)
            	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
            	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
            	at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
            	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
            	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
            	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
            	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
            	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
            	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
            	at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
            	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
            	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
            	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
            	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553)
            	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
            	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
            	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
            	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
            	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
            	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
            	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
            	at org.eclipse.jetty.server.Server.handle(Server.java:499)
            	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
            	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
            	at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
            	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
            	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
            	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
            	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
            	at java.lang.Thread.run(Thread.java:745)
            
            
            Results :
            
            Failed tests: 
              JellyTestSuiteBuilder$JellyCheck.runTest:108 <?jelly escape-by-default='true'?> is missing in file:/home/marten/Projects/cppcheck-plugin/target/classes/com/thalesgroup/hudson/plugins/cppcheck/CppcheckSource/index.jelly
            
            Tests run: 58, Failures: 1, Errors: 0, Skipped: 0
            
            martinichka Marten Lootsma added a comment - - edited Thank you for your fast update marcosteffan . Unfortunately building the plugin stops at the tests, see stack trace below. Building without the test results in a usable HPI with indeed the reported bug fixed. Tests run: 31, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 13.281 sec <<< FAILURE! - in InjectedTest com/thalesgroup/hudson/plugins/cppcheck/CppcheckSource/index.jelly(org.jvnet.hudson.test.JellyTestSuiteBuilder$JellyCheck) Time elapsed: 0.026 sec <<< FAILURE! java.lang.AssertionError: <?jelly escape-by- default = ' true ' ?> is missing in file:/home/marten/Projects/cppcheck-plugin/target/classes/com/thalesgroup/hudson/plugins/cppcheck/CppcheckSource/index.jelly at org.jvnet.hudson.test.JellyTestSuiteBuilder$JellyCheck.runTest(JellyTestSuiteBuilder.java:108) at junit.framework.TestCase.runBare(TestCase.java:134) at junit.framework.TestResult$1.protect(TestResult.java:110) at junit.framework.TestResult.runProtected(TestResult.java:128) at junit.framework.TestResult.run(TestResult.java:113) at junit.framework.TestCase.run(TestCase.java:124) at junit.framework.TestSuite.runTest(TestSuite.java:243) at junit.framework.TestSuite.run(TestSuite.java:238) at org.jvnet.hudson.test.junit.GroupedTest.runGroupedTests(GroupedTest.java:67) at org.jvnet.hudson.test.JellyTestSuiteBuilder$JellyTestSuite.doTests(JellyTestSuiteBuilder.java:152) at org.jvnet.hudson.test.JellyTestSuiteBuilder$JellyTestSuite.access$100(JellyTestSuiteBuilder.java:138) at org.jvnet.hudson.test.JellyTestSuiteBuilder$JellyTestSuite$2.call(JellyTestSuiteBuilder.java:160) at org.jvnet.hudson.test.HudsonTestCase$WebClient$5.run(HudsonTestCase.java:1610) at org.jvnet.hudson.test.ClosureExecuterAction.doIndex(ClosureExecuterAction.java:53) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:335) at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:175) at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:108) at org.kohsuke.stapler.IndexDispatcher.dispatch(IndexDispatcher.java:26) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876) at org.kohsuke.stapler.MetaClass$10.dispatch(MetaClass.java:362) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649) at org.kohsuke.stapler.Stapler.service(Stapler.java:238) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135) at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:126) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:86) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76) at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) at org.eclipse.jetty.server.Server.handle(Server.java:499) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang. Thread .run( Thread .java:745) Results : Failed tests: JellyTestSuiteBuilder$JellyCheck.runTest:108 <?jelly escape-by- default = ' true ' ?> is missing in file:/home/marten/Projects/cppcheck-plugin/target/classes/com/thalesgroup/hudson/plugins/cppcheck/CppcheckSource/index.jelly Tests run: 58, Failures: 1, Errors: 0, Skipped: 0
            marcosteffan Marco Steffan added a comment -

            Hi martenlootsma,
            the tests should be fixed (again). Sorry for the lots of updates..

            marcosteffan Marco Steffan added a comment - Hi martenlootsma , the tests should be fixed (again). Sorry for the lots of updates..
            nickbrown Nicholas Brown added a comment - https://github.com/jenkinsci/cppcheck-plugin/compare/jenkins-35096_cppcheck_plugin_pipeline_support   Are there any plans to get this merged and published soon?
            rvdk Roy van de Korput added a comment - - edited

            Hi marcosteffan, I'm getting "step <object of type org.jenkinsci.plugins.cppcheck.CppcheckPublisher>" when I try to use the pipeline syntax generator.

            ("Step: General build step" and then "Publish Cppcheck results")

            Known issue?

            Branch: jenkins-35096_cppcheck_plugin_pipeline_support, comimit: 9191d1515d2478820be325c0a5cad4b252f5bbb5 

            rvdk Roy van de Korput added a comment - - edited Hi  marcosteffan , I'm getting "step <object of type org.jenkinsci.plugins.cppcheck.CppcheckPublisher>" when I try to use the pipeline syntax generator. ("Step: General build step" and then "Publish Cppcheck results") Known issue? Branch: jenkins-35096_cppcheck_plugin_pipeline_support, comimit: 9191d1515d2478820be325c0a5cad4b252f5bbb5 

            This functionality is highly required here! What are the integration plans?

            Cheers!

            meisterplanlos Meister Planlos added a comment - This functionality is highly required here! What are the integration plans? Cheers!
            jdengel james Dengel added a comment - - edited

            marcosteffan I tried building the latest changes with Java8 and encountered some issues with the JavaDocs,

            See https://github.com/jenkinsci/cppcheck-plugin/pull/35 for an update.

            hey rvdk I think i have narrowed down your syntax generator issue.

            try building from

            https://github.com/James-Dengel/cppcheck-plugin/tree/pipline_changes

            It's based off of Marco's awesome work, but I am not much of a java expert.

            jdengel james Dengel added a comment - - edited marcosteffan I tried building the latest changes with Java8 and encountered some issues with the JavaDocs, See https://github.com/jenkinsci/cppcheck-plugin/pull/35  for an update. hey  rvdk I think i have narrowed down your syntax generator issue. try building from https://github.com/James-Dengel/cppcheck-plugin/tree/pipline_changes It's based off of Marco's awesome work, but I am not much of a java expert.

            Hello Marco,

            I created a pull-request for this issue, with a complete operational pipeline implementation for this plugin.

            Internally we are already using it successfully, See https://github.com/jenkinsci/cppcheck-plugin/pull/37

            altranmanatree Altran Manatree added a comment - Hello Marco, I created a pull-request for this issue, with a complete operational pipeline implementation for this plugin. Internally we are already using it successfully, See  https://github.com/jenkinsci/cppcheck-plugin/pull/37
            nimrod Kasia Gauza added a comment - - edited

            I've merged AltranManatree:jenkins-35096_Altran_cppcheck_plugin_pipeline_support with master branch, uploaded the plugin and it works with the pipeline.

            One issue left is that main Cppcheck link is not accessible. An error occurs:

            org.apache.commons.jelly.JellyTagException: jar:file:/mnt/work/jenkins-home/plugins/cppcheck/WEB-INF/lib/cppcheck.jar!/org/jenkinsci/plugins/cppcheck/CppcheckProjectAction/nodata.jelly:4:64: <st:include> No page found 'sidepanel.jelly' for class org.jenkinsci.plugins.cppcheck.CppcheckProjectAction

            Also pipeline syntax snippet generator allows to choose step: general build step - publish cppcheck results but result always looks bad:

            step <object of type org.jenkinsci.plugins.cppcheck.CppcheckPublisher>

             

            cppcheck sidepnael error.png

             

             

            nimrod Kasia Gauza added a comment - - edited I've merged AltranManatree : jenkins-35096_Altran_cppcheck_plugin_pipeline_support with master branch, uploaded the plugin and it works with the pipeline. One issue left is that main Cppcheck link is not accessible. An error occurs: org.apache.commons.jelly.JellyTagException: jar: file:/mnt/work/jenkins-home/plugins/cppcheck/WEB-INF/lib/cppcheck.jar!/org/jenkinsci/plugins/cppcheck/CppcheckProjectAction/nodata.jelly:4:64: <st:include> No page found 'sidepanel.jelly' for class org.jenkinsci.plugins.cppcheck.CppcheckProjectAction Also  pipeline syntax snippet generator  allows to choose  step: general build step - publish cppcheck results but result always looks bad: step <object of type org.jenkinsci.plugins.cppcheck.CppcheckPublisher>   cppcheck sidepnael error.png    

            I seem to have a working version.

            Still got a few wrinkles when using the step generator; the defaults are not displayed.

            mdoubez Michael Doubez added a comment - I seem to have a working version. Still got a few wrinkles when using the step generator; the defaults are not displayed.
            mdoubez Michael Doubez added a comment - Fixed: https://github.com/jenkinsci/cppcheck-plugin/pull/39  
            nimrod Kasia Gauza added a comment -

            So is there a working version or it's still in progress?

            nimrod Kasia Gauza added a comment - So is there a working version or it's still in progress?
            rezss Ma Ko added a comment - - edited

            Why is this issue resolved and listed as Release 1.22? Still can't use it?

            rezss Ma Ko added a comment - - edited Why is this issue resolved and listed as Release 1.22? Still can't use it?
            nimrod Kasia Gauza added a comment - - edited

            It is also behaving faulty on my Jenkins instace. Update gave me several hours of troubleshooting/rebuilding cppcheck to 1.21, reuploading and so on. I have Jenkins ver. 2.73.3.

            Error:
            org.apache.commons.jelly.JellyTagException: jar:file:(...)/jenkins-home/plugins/cppcheck/WEB-INF/lib/classes.jar!/org/jenkinsci/plugins/cppcheck/CppcheckResult/index.jelly:3:62: <st:include> No page found 'sidepanel.jelly' for class org.jenkinsci.plugins.cppcheck.CppcheckResult

            nimrod Kasia Gauza added a comment - - edited It is also behaving faulty on my Jenkins instace. Update gave me several hours of troubleshooting/rebuilding cppcheck to 1.21, reuploading and so on. I have Jenkins ver. 2.73.3. Error: org.apache.commons.jelly.JellyTagException: jar: file:(...)/jenkins-home/plugins/cppcheck/WEB-INF/lib/classes.jar!/org/jenkinsci/plugins/cppcheck/CppcheckResult/index.jelly:3:62: <st:include> No page found 'sidepanel.jelly' for class org.jenkinsci.plugins.cppcheck.CppcheckResult
            daan_philips Daan Timmer added a comment -

            Am on version 1.22

            Using the example provided above but it keeps trying to read a file called `**/cppcheck-result.xml`

            Any way to solve this? Or will this be fixed in a future version?

            daan_philips Daan Timmer added a comment - Am on version 1.22 Using the example provided above but it keeps trying to read a file called `**/cppcheck-result.xml` Any way to solve this? Or will this be fixed in a future version?

            I have the same problem as daan_philips ...

            [Cppcheck] java.lang.IllegalArgumentException: No cppcheck test report file(s) were found with the pattern '**/cppcheck-result.xml'
            

            although I configured a different path in the pipeline syntax:

               step([$class: 'CppcheckPublisher',        pattern: 'Testing/cppcheck-report.xml',        ignoreBlankFiles: false, threshold: "0", ........
            
            drywolf Wolfgang Steiner added a comment - I have the same problem as daan_philips ... [Cppcheck] java.lang.IllegalArgumentException: No cppcheck test report file(s) were found with the pattern '**/cppcheck-result.xml' although I configured a different path in the pipeline syntax: step([$class: 'CppcheckPublisher' , pattern: 'Testing/cppcheck-report.xml' , ignoreBlankFiles: false , threshold: "0" , ........

            People

              marcosteffan Marco Steffan
              djviking Sverre Moe
              Votes:
              49 Vote for this issue
              Watchers:
              59 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: