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 [email protected].
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