OK, this may be somewhat controversial...
The only reason for a "success" condition is if that condition runs after "always"... if it were to run before "always" then we could just replace it with steps / stage at the end of the scope that the conditions apply to.
Thus, as we are not allowing repeats, we have to start with the most general condition and then proceed to the most specific.
Where conditions of the same level of specificity are mutually exclusive, run the defined order should be alphanumeric sort (not that the defined order impacts anything as they are all mutually exclusive, so only one will ever run)
1. Always - the most generic condition
2. Changed - the second most generic condition, won't match every build, but can potentially match builds of any status
3. The group of mutually exclusive conditions
- Aborted
- Failure
- Success
- Unstable
This also helps with failures in more generic conditions, as the Failure / Aborted conditions will be in the final set
stephenconnolly Any thoughts on what the order should be?