2015-11-12 6 views
8

Desidero accedere al registro di un'altra azione post-generazione, che viene eseguita immediatamente prima del post-build di Groovy.Come può Groovy Postbuild controllare il messaggio di registro di un'azione precedente post-build

uscita

La console si presenta così:

Build succeeded. 
    0 Warning(s) 
    0 Error(s) 

Time Elapsed 00:00:00.48 
Code Metrics Report path: **/*.Metrics.xml 
Code Metrics Report Not Found. 
Build step 'Record VS Code Metrics PowerTool Report' changed build result to UNSTABLE 

non posso usare manager.logContains() perché l'uscita è stata generata da un'altra azione post-generazione.

posso impostare lo stato di compilazione per il successo, ma voglio farlo solo se l'azione di post-generazione registrato Build step 'Record VS Code Metrics PowerTool Report' changed build result to UNSTABLE

if (manager.build.result == hudson.model.Result.UNSTABLE 
     && ???.contains("Build step 'Record VS Code Metrics PowerTool Report' changed build result to UNSTABLE") { 
    [email protected] = hudson.model.Result.SUCCESS 
} 
+0

Un altro approccio senza groovy consiste nel scaricare i log della console, ad es. wget http: // : 8080/job///consoleText e quindi utilizzare regex grep questo output e prendere ulteriori decisioni – vaibhavnd

risposta

0

Puoi provare a utilizzare manager.build.logFile.readLines().

Per esempio,

if (manager.build.result == hudson.model.Result.UNSTABLE 

     && manager.build.logFile.readLines().contains("Build step 'Record VS Code Metrics PowerTool Report' changed build result to UNSTABLE") { 

    [email protected] = hudson.model.Result.SUCCESS 

} 

Vedi Oni Dar's excellent answer per un esempio.