I have also tried this `def action =
it.getAction('org.jenkinsci.plugins.cppcheck.CppcheckBuildAction')` which
is how the variable get instantiated in the jelly template but I get `
java.lang.NullPointerException: Cannot invoke method getAction() on null
object ` I am kind of lost here... any help is much appreciated
El viernes, 9 de abril de 2021 a las 16:05:31 UTC+2, jesus fernandez
escribió:
> But the object model of both is different, you need to choose the
> correct one in the email template!
>
> Yes, that template I am using it with publishcpp at the moment but I am
> not able to get the value of any of their properties within my pipeline
> like if I try to echo to check its value I get an error
> 'groovy.lang.MissingPropertyException: No such property: cppcheckResult for
> class: groovy.lang.Binding' so I am stuck trying to get the total number of
> errors from each build
>
> El viernes, 9 de abril de 2021 a las 15:41:22 UTC+2, jesus fernandez
> escribió:
>
>> but this is like god trying to explain something to a rock, I have just
>> started in this world...hehehe
>>
>> El viernes, 9 de abril de 2021 a las 15:40:44 UTC+2, jesus fernandez
>> escribió:
>>
>>> hahaha oh gosh I should have known I watched your video on youtube a few
>>> days ago.
>>>
>>> El viernes, 9 de abril de 2021 a las 15:39:30 UTC+2,
>>> [email protected] escribió:
>>>
>>>>
>>>>
>>>> I actually have tried both to publish the result,
>>>>
>>>>
>>>> But the object model of both is different, you need to choose the
>>>> correct one in the email template!
>>>>
>>>> have not decided which one to use yet, any suggestion?
>>>>
>>>>
>>>> I am biased as I am the author of the warnings plugin ;-)
>>>>
>>>> I like the dashboard of the warnings-ng better, but I ilke from the
>>>> publushcpp that you can see the line where the error is right from Jenkins
>>>> without need to open the editor and look for the line...
>>>>
>>>>
>>>> This could be done in the warnings plugin as well.
>>>> Example:
>>>> https://ci.jenkins.io/job/Plugins/job/analysis-model/job/master/1150/pmd/source.6e8cd82c-d953-4e48-9163-87d374ee6241/#32
>>>>
>>>>
>>>> El viernes, 9 de abril de 2021 a las 14:40:34 UTC+2, ullrich...@
>>>> gmail.com escribió:
>>>>
>>>>> First of all: are you using the warnings-ng plugin or the cppcheck
>>>>> plugin in your build? They use different models.
>>>>>
>>>>> I’m not sure if there is an easy way to debug email ext templates in
>>>>> the meantime, I am not using it actively.
>>>>> But you can simply start with a subset of the script below and check
>>>>> which values produce a result and which not.
>>>>>
>>>>> Am 09.04.2021 um 14:32 schrieb jesus fernandez <[email protected]
>>>>> >:
>>>>>
>>>>> my projects are in Perforce. What if I want to acces to one of those
>>>>> properties which I know are available from looking at the jelly template,
>>>>> for instance ${cppcheckResult.getDiff().getNumberNoCategorySeverity()} I
>>>>> tried to echo that property but I get an error how could I access to it?
>>>>> this is the jelly template I am using (I took it from SO)
>>>>> <j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler"
>>>>> xmlns:d="jelly:define">
>>>>> <div class="content">
>>>>> <html>
>>>>> <j:set var="cppcheckAction"
>>>>> value="${it.getAction('org.jenkinsci.plugins.cppcheck.CppcheckBuildAction')}"
>>>>>
>>>>> />
>>>>> <j:if test="${cppcheckAction!=null}">
>>>>> <j:set var="cppcheckResult"
>>>>> value="${cppcheckAction.getResult()}" />
>>>>> <j:if test="${cppcheckResult!=null}">
>>>>> <h2>Summary</h2>
>>>>> <style type="text/css">
>>>>> #cppcheckStatistics { width: auto; }
>>>>> #cppcheckStatistics .number { text-align: right; }
>>>>> </style>
>>>>> <table class="pane sortable" id="cppcheckStatistics">
>>>>> <thead>
>>>>> <tr>
>>>>> <td class="pane-header">Severity</td>
>>>>> <td class="pane-header">Count</td>
>>>>> <td class="pane-header">Delta</td>
>>>>> </tr>
>>>>> </thead>
>>>>> <tbody>
>>>>> <tr>
>>>>> <td class="pane">Error</td>
>>>>> <td class="pane
>>>>> number">${cppcheckResult.statistics.getNumberErrorSeverity()}</td>
>>>>> <td class="pane
>>>>> number">${cppcheckResult.getDiff().getNumberErrorSeverity()}</td>
>>>>> </tr>
>>>>> <tr>
>>>>> <td class="pane">Warning</td>
>>>>> <td class="pane
>>>>> number">${cppcheckResult.statistics.getNumberWarningSeverity()}</td>
>>>>> <td class="pane
>>>>> number">${cppcheckResult.getDiff().getNumberWarningSeverity()}</td>
>>>>> </tr>
>>>>> <tr>
>>>>> <td class="pane">Style</td>
>>>>> <td class="pane
>>>>> number">${cppcheckResult.statistics.getNumberStyleSeverity()}</td>
>>>>> <td class="pane
>>>>> number">${cppcheckResult.getDiff().getNumberStyleSeverity()}</td>
>>>>> </tr>
>>>>> <tr>
>>>>> <td class="pane">Performance</td>
>>>>> <td class="pane
>>>>> number">${cppcheckResult.statistics.getNumberPerformanceSeverity()}</td>
>>>>> <td class="pane
>>>>> number">${cppcheckResult.getDiff().getNumberPerformanceSeverity()}</td>
>>>>> </tr>
>>>>> <tr>
>>>>> <td class="pane">Portability</td>
>>>>> <td class="pane
>>>>> number">${cppcheckResult.statistics.getNumberPortabilitySeverity()}</td>
>>>>> <td class="pane
>>>>> number">${cppcheckResult.getDiff().getNumberPortabilitySeverity()}</td>
>>>>> </tr>
>>>>> <tr>
>>>>> <td class="pane">Information</td>
>>>>> <td class="pane
>>>>> number">${cppcheckResult.statistics.getNumberInformationSeverity()}</td>
>>>>> <td class="pane
>>>>> number">${cppcheckResult.getDiff().getNumberInformationSeverity()}</td>
>>>>> </tr>
>>>>> <tr>
>>>>> <td class="pane">No category</td>
>>>>> <td class="pane
>>>>> number">${cppcheckResult.statistics.getNumberNoCategorySeverity()}</td>
>>>>> <td class="pane
>>>>> number">${cppcheckResult.getDiff().getNumberNoCategorySeverity()}</td>
>>>>> </tr>
>>>>> </tbody>
>>>>> <tfoot>
>>>>> <tr class="sortbottom">
>>>>> <td class="pane-header">Total</td>
>>>>> <td class="pane-header number"><B><a
>>>>> href="${rooturl}${build.url}cppcheckResult">${cppcheckResult.report.getNumberTotal()}</a></B></td>
>>>>> <td class="pane-header number"><B><a
>>>>> href="${rooturl}${build.url}cppcheckResult/source.all/?before=5&after=5&states=new">${cppcheckResult.getDiff().getNumberTotal()}</a></B></td>
>>>>> </tr>
>>>>> </tfoot>
>>>>> </table>
>>>>> </j:if>
>>>>> </j:if>
>>>>> </html>
>>>>> </div>
>>>>> </j:jelly>
>>>>>
>>>>> El viernes, 9 de abril de 2021 a las 14:27:16 UTC+2, ullrich...@
>>>>> gmail.com escribió:
>>>>>
>>>>>> Are your projects located in GitHub? Then it would be quite easy to
>>>>>> report results automatically using the GitHub checks plugin. Email is
>>>>>> quite
>>>>>> old-school when it comes to build result reporting...
>>>>>>
>>>>>> Am 09.04.2021 um 13:58 schrieb jesus fernandez <
>>>>>> [email protected]>:
>>>>>>
>>>>>> Thanks for asering. I have been checking the javadoc of the plugin
>>>>>> https://javadoc.jenkins.io/plugin/email-ext/ but my java knowledge
>>>>>> is super basic and I do not get to see where the methods available to
>>>>>> Jenkins are. So I guess this is too advanced for me ATM
>>>>>>
>>>>>> El viernes, 9 de abril de 2021 a las 13:48:03 UTC+2, ullrich...@
>>>>>> gmail.com escribió:
>>>>>>
>>>>>>> You need to read the code of the plugin. I.e., the model of the
>>>>>>> producer plugin.
>>>>>>>
>>>>>>>
>>>>>>> Am 09.04.2021 um 13:08 schrieb jesus fernandez <
>>>>>>> [email protected]>:
>>>>>>>
>>>>>>> I am learning Jenkins on my own and I am trying to learn about
>>>>>>> plugins. I have a stage to send an email with the cppcheck results with
>>>>>>> a
>>>>>>> template I found
>>>>>>> https://stackoverflow.com/questions/13888338/sending-cppcheck-result-report-on-email-from-jenkins-using-email-ext-plugin
>>>>>>>
>>>>>>> the template instantiate the ```CppcheckBuildAction``` and access its
>>>>>>> methods, what I would like to know if is possible to check what methods
>>>>>>> are
>>>>>>> avaialable for that instance and if possible how / where I can see them.
>>>>>>> Also how could I for example echo / println one of them. For
>>>>>>> instance in the template provided in the link above it acces the total
>>>>>>> number of errors with ${cppcheckResult.report.getNumberTotal()} but if
>>>>>>> I
>>>>>>> echo it I get an error ```groovy.lang.MissingPropertyException: No such
>>>>>>> property: cppcheckResult for class: groovy.lang.Binding```, this is
>>>>>>> what I
>>>>>>> tried
>>>>>>> stage('Email') {
>>>>>>> steps {
>>>>>>> script{
>>>>>>> publishCppcheck pattern:'cppcheck.xml'
>>>>>>> emailext( subject: 'foo', to: '[email protected]', body:
>>>>>>> '${JELLY_SCRIPT, template="custom"}')
>>>>>>> }
>>>>>>> echo "${cppcheckResult.report.getNumberTotal()}"
>>>>>>> }
>>>>>>> }
>>>>>>> my final goal actually is to send the email just when the report
>>>>>>> find a new error so I was thinking to save the total number of errors
>>>>>>> in an
>>>>>>> external file and compare it with each build and if the number is
>>>>>>> bigger
>>>>>>> send the email, is there any native / easier way to do this?
>>>>>>>
>>>>>>> --
>>>>>>> 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/901e41a0-e2ec-466c-87a9-23d6082897e1n%40googlegroups.com
>>>>>>>
>>>>>>> <https://groups.google.com/d/msgid/jenkinsci-users/901e41a0-e2ec-466c-87a9-23d6082897e1n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>> .
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> --
>>>>>> 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/48090815-12d1-4f8a-a15b-2d0c0185b830n%40googlegroups.com
>>>>>>
>>>>>> <https://groups.google.com/d/msgid/jenkinsci-users/48090815-12d1-4f8a-a15b-2d0c0185b830n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>>
>>>>>>
>>>>>>
>>>>> --
>>>>> 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/e7ede103-a7e3-4a7a-8cf1-7beda07eaa06n%40googlegroups.com
>>>>>
>>>>> <https://groups.google.com/d/msgid/jenkinsci-users/e7ede103-a7e3-4a7a-8cf1-7beda07eaa06n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>>>
>>>>>
>>>> --
>>>> 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/ac9a06c7-d023-4704-bfce-c3c4f69ea8d4n%40googlegroups.com
>>>>
>>>> <https://groups.google.com/d/msgid/jenkinsci-users/ac9a06c7-d023-4704-bfce-c3c4f69ea8d4n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>>
>>>>
--
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/061ac574-3640-4174-8eba-e99563571106n%40googlegroups.com.