It is a common practice to batch changes in a pipeline via milestone/lock . That way, resources are more efficiently used since there is only one instance of each stage running at a time. In practice, the milestone step aborts any instance of a pipeline if another pipeline instance, with new commits on it, reaches the milestone point.
Currently, blue-ocean shows the steps that run on the pipeline in green, then the ones that didn't run on that instance (since a newer one hit the milestone) are rendered as grey. Users that need to track where in the pipeline their change is need to close their pipeline instance page, then manually look for the first non-aborted pipeline instance after.
Ideally, Jenkins should provide a better way to track where the change is. Maybe show the pipeline stages that are running on a different instance (due to a milestone) in grey, but as running? Some other way?
CancelledCause contains the data needed to find out what run replaced one that was canceled. CancelledCause is set on the Runs InterruptedBuildAction.
This pull request should allow the CancelledCause to serialize all the data we need to do the work here.
The run that does succeed should roll up all the changesets of the aborted runs that came before it since the last non-aborted run. Perhaps we should be doing this for whole series of successful runs?