Also, I'm going to use "synthetic" stages (i.e., standard ones we define and use solely within the ModelInterpreter) for a few common sections of execution outside of the user-defined stages.
Code changed in jenkins User: Andrew Bayer Path: pom.xml src/main/resources/org/jenkinsci/plugins/pipeline/modeldefinition/ModelInterpreter.groovy src/test/java/org/jenkinsci/plugins/pipeline/modeldefinition/AgentTest.java src/test/java/org/jenkinsci/plugins/pipeline/modeldefinition/BasicModelDefTest.java src/test/java/org/jenkinsci/plugins/pipeline/modeldefinition/BuildConditionResponderTest.java src/test/java/org/jenkinsci/plugins/pipeline/modeldefinition/EnvironmentTest.java src/test/java/org/jenkinsci/plugins/pipeline/modeldefinition/ScriptStepTest.java src/test/java/org/jenkinsci/plugins/pipeline/modeldefinition/ToolsTest.java http://jenkins-ci.org/commit/pipeline-model-definition-plugin/04ad0c257e52f1ac6a418eca2f756b251c277c09 Log: [FIXED JENKINS-37897] Switch to block scoped stages.
Also create synthetic stages for post-build and notifications. Maybe more of those to come in the future, but haven't decided yet. Also bumped plugin versions.