GraphListener gives you access to a FlowNode but not a StepContext which sometimes has richer information. It also provides no straightforward way to block the execution of a step before it begins (though you can abort the build soon afterward). For some purposes it would be nice to have something like

      public interface StepListener extends ExtensionPoint {
        void newStep(Step step, StepContext context) throws Exception;
      }
      

      The natural place to call this would be right before Step.start, at which point all the abovementioned information is available, and any Exception can just be handled in onFailure just like a synchronous error from start would.

          [JENKINS-58084] Vetoable version of GraphListener

          Andrew Bayer added a comment -

          Super-preliminary PRs up for workflow-api and workflow-cps.

          Andrew Bayer added a comment - Super-preliminary PRs up for workflow-api and workflow-cps.

          Karl Shultz added a comment -

          This has been done and merged, thanks Andrew!

          Merged PRs:

          Karl Shultz added a comment - This has been done and merged, thanks Andrew! Merged PRs: workflow-api 96 workflow-cps 299

            abayer Andrew Bayer
            jglick Jesse Glick
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: