Hi Ulli--

Thanks for the response. I appreciate the pointers.

Allen

Allen Fisher
Continuous Integration Engineer
MakeMusic, Inc
E: afis...@makemusic.com<mailto:afis...@makemusic.com>
P: 952.906.3664
S: allen_fisher
W: www.makemusic.com<http://www.makemusic.com>

On Oct 30, 2012, at 11:58 AM, Ulli Hafner wrote:

I don't know how to cancel sending an email so my answer is only for the 
warnings part of your mail. Maybe slide knows how to cancel the sending.

In your script you basically need a reference to one of the warnings result 
actions (there is one action per parser). There is no TOKEN yet that exposes 
all the warnings. If you have this action instance in your script, then you can 
navigate to the warnings using the available Java methods on that class. E.g. 
action.result.numberOfAnnotations will give the totals, while 
action.result.warnings will return the warnings.

The best way would be if you open the source code of the plug-in to see which 
methods are available...

Ulli

Am 30.10.2012 um 17:47 schrieb Slide 
<slide.o....@gmail.com<mailto:slide.o....@gmail.com>>:

You basically need to determine how to access the information you want using 
Java and then translate that into groovy. You'd want to get at the warnings 
publisher for the current build and then look at the API's available for that 
to get the information you need. If there is a WARNINGS_NEW token, then you 
could look at how the Java creates that token and go from there.

slide

On Tue, Oct 30, 2012 at 8:57 AM, Fisher, Allen 
<afis...@makemusic.com<mailto:afis...@makemusic.com>> wrote:
Hi List--

We're on a tear to clean up warnings in our applications. The Warnings Plugin 
has been invaluable in that effort (Thanks, Ulli!). It's going to be a while 
until we can turn "Warnings as errors" as a global option, so in the mean time, 
we want to alert the dev team when the warning count goes up after a build.

I'm working on using EMAIL-EXT to create the email that goes out for this 
issue. I've had some success in listing the counts of new/fixed/total warnings. 
It works great except it sends the email for every build, not just the ones 
with new errors. According to the documentation for email-ext, I should be able 
to put in a pre-send script that sets "cancel" to false. I've made several 
stabs at this (I'm not a Groovy guy, so I'm probably missing something pretty 
obvious), but no matter what I've done, I can't get it to cancel the email:

This is one of the attempts, using code I found on stack overflow:

if (${WARNINGS_NEW}==0) { cancel = true; }

Email was triggered for: Success
Sending email for trigger: Success
Sending email to: afis...@makemusic.com<mailto:afis...@makemusic.com>
groovy.lang.MissingMethodException: No signature of method: Script1.$() is 
applicable for argument types: (Script1$_run_closure1) values: 
[Script1$_run_closure1@1fcba664]
Possible solutions: is(java.lang.Object), run(), run(), any(), 
use([Ljava.lang.Object;), any(groovy.lang.Closure)
       at 
org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:55)
       at 
org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:78)
       at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
       at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
       at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
       at Script1.run(Script1.groovy:1)
       at groovy.lang.GroovyShell.evaluate(GroovyShell.java:580)
       at groovy.lang.GroovyShell.evaluate(GroovyShell.java:618)
       at groovy.lang.GroovyShell.evaluate(GroovyShell.java:589)
       at 
hudson.plugins.emailext.ExtendedEmailPublisher.executePresendScript(ExtendedEmailPublisher.java:322)
       at 
hudson.plugins.emailext.ExtendedEmailPublisher.sendMail(ExtendedEmailPublisher.java:281)
       at 
hudson.plugins.emailext.ExtendedEmailPublisher._perform(ExtendedEmailPublisher.java:265)
       at 
hudson.plugins.emailext.ExtendedEmailPublisher.perform(ExtendedEmailPublisher.java:225)
       at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:36)
       at 
hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:807)
       at 
hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:782)
       at hudson.model.Build$BuildExecution.cleanUp(Build.java:192)
       at hudson.model.Run.execute(Run.java:1560)
       at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
       at hudson.model.ResourceController.execute(ResourceController.java:88)
       at hudson.model.Executor.run(Executor.java:236)


And it still sends the mail.

I also have a question about getting a list of the new warnings in the body of 
the email. I'm not sure how to get at them. I've written some python that pulls 
out the new warnings using the REST API, but it seems that there should be a 
token that I could get at, or is there a groovy call I could make?

Thanks for all your help!

Allen Fisher
Continuous Integration Engineer
MakeMusic, Inc
E: afis...@makemusic.com<mailto:afis...@makemusic.com>
P: 952.906.3664
S: allen_fisher
W: www.makemusic.com<http://www.makemusic.com>





--
Website: http://earl-of-code.com



Reply via email to