Child pages
  • Pipeline Model Definition Plugin

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


titleThis plugin requires Jenkins 2.7121.1 or later

titleMore Information at

More information is available at


Version 1.3.9 (June 7, 2019)

  • JENKINS-57162 - agent dockerfile  name/hash should incorporate build args.
  • JENKINS-57826post  on a stage  should handle catchError 's stageResult  as distinct from the status of the whole build.

Version 1.3.8 (April 15, 2019)

  • JENKINS-46354 - Don't skip all stages when retrying from top level.

Version 1.3.7 (March 20, 2019)

  • JENKINS-52850 - Support SSH private key credentials in environment.
  • JENKINS-56402 - Set build result to the logical result in post conditions.
  • JENKINS-56544failFast option for parallel stages no longer sets build status to ABORTED when other stages are aborted before entering their step execution.

Version 1.3.6 (March 6, 2019)

  • JENKINS-56405 - Don't require registry credentials if a registry URL is specified.

Version 1.3.5 (March 1, 2019)

  • JENKINS-52744 - Show a meaningful error when an environment variable value references an undefined variable.
  • JENKINS-49950 - Allow using Dockerhub credentials without having to specify a registry URL.
  • JENKINS-55476 - Don't trigger unsuccessful post condition for successful builds.
  • JENKINS-55459 - Make parallel stages that fail fast result in the build being marked as failed, not aborted.

Version (January 8, 2019)

Version 1.3.4 (December 10, 2018) 

  • JENKINS-49997 - Add new unsuccessful post condition
  • JENKINS-53734 - Allow use of parallel within top-level sequential stages. 
  • JENKINS-54919 - Change processing of agent contents to allow references to newly defined parameter default values.
  • JENKINS-46894 - Add a new when condition for checking the build's cause.

Version 1.3.3 (November 27, 2018) 

  • Add REST API for Stage Restart functionality
  • JENKINS-54047 - Fix handling of ! expressions in environment variable resolution.
  • JENKINS-48556 - Prevent sporadic failure to recognize block-scoped steps, such as timestamps, as valid options.
  • JENKINS-50880 - Add beforeInput flag for when.
  • JENKINS-53558 - New option for setting failFast for all parallel stages in a Pipeline.

Version 1.3.2 (August 31, 2018) 

  • JENKINS-51027 - Include post conditions in Directive Generator correctly.
  • JENKINS-51932 - Include isRestartedRun in when Directive Generator.
  • JENKINS-51931 - Fix NPE if a when condition like allOf or anyOf has no children.
  • JENKINS-51872 - Fix tool dropdowns in Directive generator.
  • JENKINS-51383 - Properly catch/handle Throwable as well as Exception in stage execution.
  • JENKINS-51227 - Add quietPeriod Declarative option.
  • JENKINS-53316 - Switch to depending on jackson2-api plugin rather than shading everything Jackson/JSON-related ourselves.
  • JENKINS-52114 - Make post failure and success for a stage care about whether that stage has an error, rather than the full build's status. This allows a stage within a parallel that does not have any errors but completes after another parallel stage that does have an error (resulting in the build's status now being FAILURE) to fire its post success condition as would be expected.
    • NOTE: this does result in a small change in expected behavior. If you are setting currentBuild.result to FAILURE in a stage and then have a post failure condition for that same stage, without ever actually having a true error or step failure in the stage, the post failure for the stage in question will not fire. post failure conditions on a stage now fire when there's an error in the execution of the stage only, and post success conditions on a stage fire whenever there is no error in the execution of the stage.
    • No change in behavior for any other post condition, or for post outside of stages (including success and failure) is introduced by this.

Version 1.3.1 (June 27, 2018) 

  • JENKINS-51962 - Propagate failures in nested sequential stages to top-level properly.
  • JENKINS-52084 - Execute post for sequential stage parent in proper context (such as agent)

Version 1.3 (June 14, 2018)

  • JENKINS-50882 - fix Directive Generator link from multibranch folders.
  • JENKINS-50964 - Fix 404 on Pipeline Syntax link 
  • JENKINS-50645 - Switch to firing failure after success and unstable, in case those post conditions modify status.
  • JENKINS-50815 - Fall back to GIT_LOCAL_BRANCH for when branch condition if BRANCH_NAME is not available.
  • JENKINS-43016 - Convert empty string label for agent to agent any in JSON.
  • JENKINS-46809 - Add support for nesting sequential groups of stages inside a stage.
  • JENKINS-45455 - Allow restarting a completed build from any stage which ran in that build, with all inputs (SCM, parameters, etc) preserved, and if the new preserveStashes option has been specified, any stashes from the original build available to the new build.
  • JENKINS-44993 - Don't swallow errors in post.

Version 1.2.9 (Apr 17, 2018)

  • JENKINS-50652 - Don't fire failure for aborted/timed-out sh and bat steps.
  • JENKINS-41239 - Add new cleanup post condition to always run, after every other post condition has run.
  • JENKINS-50833 - Revert DeclarativeAgentDescriptor.all() signature to unbreak Pipeline Editor.
  • JENKINS-50682 - Fix when conditions tag and changeRequest in Directive Generator.

Version 1.2.8 (Apr 5, 2018)

  • JENKINS-49677 - Better uniqueness on Dockerfile tag name.
  • JENKINS-49226 - Add new equals condition for when.
  • JENKINS-49976 - Prevent serialization warnings related to ModelASTValue inner classes.
  • JENKINS-41060 - Add new fixed and regression post conditions.
  • JENKINS-49558 - Add new newContainerPerStage option, which will spin up a fresh container of a docker or dockerfile top-level agent for each stage, rather than reusing the same container across all stages.
  • JENKINS-48523when conditions for checking if building a git tag or a change request (such as a GitHub pull request).
  • JENKINS-47106 - Properly support alwaysPull option in top-level agent docker
  • JENKINS-49893 - Declarative Directive Generator added.

Version 1.2.7 (Jan 29, 2018)

  • JENKINS-48758 - Improve error messages around bare variables for environment values.
  • JENKINS-48752 - Fix post change behavior to not treat consecutive runs with any status but SUCCESS as changed.
  • JENKINS-49070 - Prevent use of BigDecimal to avoid serialization issues.

Version 1.2.6 (Jan 12, 2018)

  • JENKINS-48209 - Prevent serialization problems with when expression
  • JENKINS-48229 - Use the agent's directory separator for Dockerfile path.
  • JENKINS-48266 - Fix execution of post for parallel stages parent.
  • JENKINS-44461 - Add beforeAgent option for when - if true, when conditions will be evaluated before entering the agent.
  • JENKINS-48304 - Invalidate option type caches after "extensions augmented" to prevent a race condition where not all plugins have loaded yet when the caches get initially populated.
  • JENKINS-48380 - add options for stage - supports block-scoped "wrappers" like timeout and Declarative options like skipDefaultCheckout.
  • JENKINS-48379 - Add input directive for stage - runs the input step with the supplied configuration before entering the when or agent for a stage, and makes any parameters provided as part of the input step available as environment variables.
  • JENKINS-44277 - Add checkoutToSubdirectory(...) Declarative option for use in top-level or per stage options directive.



Declarative Pipeline runs in progress upon upgrade from versions prior to 1.2 will probably fail on resuming.


  • JENKINS-41334 - Parallel definition and execution of stages.
  • JENKINS-45198 - When on core 2.60+ with pipeline-scm-step 2.6+ and recent versions of gitsubversion, or mercurial plugins, include SCM-provided variables in environment automatically.
  • JENKINS-42753 - Rewrite of runtime parser, fixing a bunch of issues with environmentwhen expression, variable and function behavior consistency, and more.
    • Related tickets:
      • JENKINS-44298 - Usage of variables and functions defined outside the pipeline block can work in when expression again.
      • JENKINS-44482 - Pre-existing environment variables containing backslashes do not have their backslashes discarded.
      • JENKINS-44603 - Usage of variables and functions defined outside the pipeline block work in environment variables again.
      • JENKINS-45636 - Backslashes are correctly escaped when defined in one new environment variable and referenced in another.
      • JENKINS-45637 - Environment variables containing multiple pre-existing environment variables no longer silently fail.
      • JENKINS-45916 - Pre-existing environment variables, such as PATH, can be overridden in the environment directive.
      • JENKINS-44034 - Variable references in environment variable definitions no longer require curly braces.
      • JENKINS-46112 - Logs for error steps visible in Blue Ocean correctly.
      • JENKINS-45991 - environment variables can be configured to have default values, i.e., FOO = FOO ?: "default"
  • JENKINS-46065 - Provide an extension point for contributing to Declarative validation.
  • JENKINS-46277 - Always do a fresh docker pull, even for agents in stages.
  • JENKINS-46064 - New when conditions for referencing the build's changelog.
  • JENKINS-44039 - Fixed round-tripping of single-quote multiline script blocks from the editor.
  • JENKINS-46544 - Give useful error message on use of bare ${...} outside quotes.
  • JENKINS-44497 - Allow use of variables in tools values.
  • JENKINS-46547 - Support declaration of pipeline blocks in shared libraries' src/*.groovy files.