I am aware that this ticket is valued by many people. However, on review there are too many disparate use cases and problems attached to this issue that are already described elsewhere.
This issue means too many things for too many people and makes it unsatisfiable with a single change. The appropriate action here is to close this ticket and ask watchers to watch and vote for a specific ticket that will solve their problem.
If you are interested in these problems, please watch and vote for the following:
JENKINS-39203 - The entire pipeline gets marked as unstable rather than the stage or parallel where the unstable status was set.
JENKINS-45579 - Capability to mark a stage as "failed" with message and have the pipeline continue executing.
JENKINS-43995 - Infrastructure to allow any step to have its own distinct status. This enables the tickets listed above.
- JENKINS-46170 - Add notes to stages and parallels
I may have missed a few use cases. If that is the case:
- Search JIRA for an issue matching your use case. If you find one, link it in the comments and I will update the ticket. Be sure to leave a comment on the linked ticket describing the problem you are trying to solve and then your desired solution to the problem.
- If you cannot find an existing issue, raise a new one and comment here. Leave a comment on your new ticket describing problem you are trying to solve and then your desired solution to the problem.
It is often useful to provide more information up-front than a simple red or green "this step passed" or "this step failed". Our current in-house CI software has a "summary" field in its "Running Steps" equivalent, which can be filled with other info when a step finishes. For example, we have a step "upload-to-storage" which can optionally replace a "/latest/" symlink to the output it just uploaded. Either replacing or not replacing the symlink is correct, so we populate our "summary" field with the decision taken.
I've attached an example from our current CI system - note that by allowing a step to populate its own summary, it means all pertinent information is available immediately to developers, on one page, rather than needing to always click through to log output for high-level information.