Advertisement
jimklimov

Jenkins Groovy to parse log and SUCCEED/FAIL/UNSTABLE the jo

Aug 11th, 2017
269
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Groovy 1.60 KB | None | 0 0
  1. // Based on http://stackoverflow.com/questions/28309207/how-to-mark-the-jenkins-build-unstable-with-groovy-postbuild
  2. failpattern = ~/^SELENIUM-FAILED.*/;
  3. unstpattern = ~/^SELENIUM-UNSTABLE.*/;
  4. okaypattern = ~/^SELENIUM-SUCCESS.*/;
  5. manager.build.logFile.eachLine{ line ->
  6.     unstmatcher=unstpattern.matcher(line)
  7.     okaymatcher=okaypattern.matcher(line)
  8.     failmatcher=failpattern.matcher(line)
  9.     if (unstmatcher.find()) {
  10.         // warning (unstable) message - prefer to be unstable if both fail and unstable matches are present
  11.         String unstMatchStr = unstmatcher.group(0) // line matched
  12.         manager.addWarningBadge(unstMatchStr);
  13.         manager.createSummary("warning.gif").appendText("<h4>${unstMatchStr}</h4>", false, false, false, "orange");
  14.         manager.buildUnstable();
  15.         // explicitly set build result
  16.         manager.build.@result = hudson.model.Result.UNSTABLE
  17.     } else if (failmatcher.find()) {
  18.         // warning (unstable) message
  19.         String failMatchStr = failmatcher.group(0) // line matched
  20.         manager.addWarningBadge(failMatchStr);
  21.         manager.createSummary("warning.gif").appendText("<h4>${failMatchStr}</h4>", false, false, false, "red");
  22.         manager.buildFailure();
  23.         // explicitly set build result
  24.         manager.build.@result = hudson.model.Result.FAILURE
  25.     } else if (okaymatcher.find()) {
  26.         // ok
  27.         String matchStr = okaymatcher.group(0) // line matched
  28.         manager.addInfoBadge(matchStr);
  29.         manager.createSummary("clipboard.gif").appendText("<h4>${matchStr}</h4>", false, false, false, "green");
  30.     }
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement