Hello! I'm working on a project to display the results of Jenkins builds in an external dashboard, and I've run into a fun conceptual problem.
I'd like to tell if a BuildStep had a good or bad outcome. A 'good' outcome is one in which the step executed as expected, while a 'bad' outcome is one in which somebody should probably take a look at the build to see what's wrong with it. For instance, if an Execute Shell command exited with return code 0, that's good; if it exited with return code 1, that's bad. Similarly, if a "Publish JUnit test result report" reports all tests passed, that's good, and if some tests failed, that's bad. Currently I'm guessing the outcome of steps by heuristics: If the BuildStep made the build result worse, as reported by AbstractBuild#getResult, then we say the step had a bad outcome. If the BuildStep requests the step abort (that is, from our StepNotifier we see canContinue = false), the step had a bad outcome. And so on. But such heuristics will still be wrong sometimes. Say one post-build action notices a test failed, and marks the build as unstable. Then a second post-build action notices another test failed. Since the build was already unstable, my plugin can't tell that the second action had a bad outcome; it didn't make the build's result any worse. Of course, I can add more heuristics. (For instance, here I can hook into test result reporting, and say an action had a bad outcome if it reported some failing tests.) But I'll always guess wrong in some case. Is there a more general way to tell whether a step had a good or bad outcome? -- You received this message because you are subscribed to the Google Groups "Jenkins Developers" 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-dev/a1578804-6fa2-457e-b17b-14a9522e3609%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
