I am a junior dev trying to lear about Jenkins, I have been learning on my 
own for a couple of months. Currently I have a pipeline (just for learning 
purposes) which runs static analysis on a folder, and then publish it, I 
have been able to send a report through email using jelly templates, from 
there I realized it is posbile to instantiate the classes of a plugin to 
use its methods so I went to the cppcheck javadoc here 
https://javadoc.jenkins.io/plugin/cppcheck/ and did some trial and error so 
I can get some values of my report and then do something else with them 
something, so I had something like this in my pipeline:
```
pipeline {
agent any

stages {
  stage('analysis') {
    steps {
      script{
        bat'cppcheck "E:/My_project/Source/" --xml --xml-version=2 . 2> 
cppcheck.xml'
      }
   }
}
stage('Test'){
  steps {
    script {
      publishCppcheck pattern:'cppcheck.xml'
      for (action in currentBuild.rawBuild.getActions()) {
        def name = action.getClass().getName()
        if (name == 'org.jenkinsci.plugins.cppcheck.CppcheckBuildAction') {
       def cppcheckaction = action
       def totalErrors = cppcheckaction.getResult().report.getNumberTotal()
       println totalErrors
       def warnings = 
cppcheckaction.getResult().statistics.getNumberWarningSeverity()
       println warnings
      }
    }
  } 
}
}
}

}
```
which output is:
```
[Pipeline] echo
102
[Pipeline] echo
4
```

My logic (wrongly) tells me that if I can access to the report and 
statistics classes like that and uses their methods getNumberTotal() and 
getNumberWarningSeverity() respectively, therefore I should be able to also 
access the ```DiffState``` class in the same way and use the 
```valueOf()``` method to get an enum of the new errors. But adding this to 
my pipeline:
```
def nueva = cppcheckaction.getResult().diffState.valueOf(NEW)
println nueva
```
Gives me an error:
```
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: No 
such field found: field org.jenkinsci.plugins.cppcheck.CppcheckBuildAction 
diffState
at 
org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.unclassifiedField(
SandboxInterceptor.java:425)
at 
org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(
SandboxInterceptor.java:409)
...
```

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/ca24b1f9-b0a8-4e81-8101-0b25f8267602n%40googlegroups.com.

Reply via email to