Plugin Information |
---|
View Pipeline: Declarative on the plugin site for more information. |
Older versions of this plugin may not be safe to use. Please review the following warnings before using an older version:
This plugin requires Jenkins 2.121.1 or later
More Information at jenkins.io
More information is available at jenkins.io.
Changelog
Version 1.3.9 (June 7, 2019)
- JENKINS-57162 -
agent dockerfile
name/hash should incorporate build args. - JENKINS-57826 -
post
on astage
should handlecatchError
'sstageResult
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-56544 -
failFast
option for parallel stages no longer sets build status toABORTED
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 1.3.4.1 (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 inenvironment
variable resolution. - JENKINS-48556 - Prevent sporadic failure to recognize block-scoped steps, such as
timestamps
, as validoptions
. - JENKINS-50880 - Add
beforeInput
flag forwhen.
JENKINS-53558 - New
option
for settingfailFast
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
inwhen
Directive Generator. - JENKINS-51931 - Fix NPE if a
when
condition likeallOf
oranyOf
has no children. - JENKINS-51872 - Fix
tool
dropdowns in Directive generator. - JENKINS-51383 - Properly catch/handle
Throwable
as well asException
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
andsuccess
for astage
care about whether thatstage
has an error, rather than the full build's status. This allows astage
within aparallel
that does not have any errors but completes after anotherparallel
stage
that does have an error (resulting in the build's status now beingFAILURE
) to fire itspost
success
condition as would be expected.- NOTE: this does result in a small change in expected behavior. If you are setting
currentBuild.result
toFAILURE
in astage
and then have apost
failure
condition for that samestage
, without ever actually having a true error or step failure in thestage
, thepost
failure
for thestage
in question will not fire.post
failure
conditions on astage
now fire when there's an error in the execution of thestage
only, andpost
success
conditions on astage
fire whenever there is no error in the execution of thestage
. - No change in behavior for any other
post
condition, or forpost
outside ofstages
(includingsuccess
andfailure
) is introduced by this.
- NOTE: this does result in a small change in expected behavior. If you are setting
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 asagent
)
Version 1.3 (June 14, 2018)
- JENKINS-50882 - fix Directive Generator link from multibranch folders.
- JENKINS-50964 - Fix 404 on jenkins.io Pipeline Syntax link
- JENKINS-50645 - Switch to firing
failure
aftersuccess
andunstable
, in case thosepost
conditions modify status. - JENKINS-50815 - Fall back to
GIT_LOCAL_BRANCH
forwhen branch
condition ifBRANCH_NAME
is not available. - JENKINS-43016 - Convert empty string
label
foragent
toagent any
in JSON. - JENKINS-46809 - Add support for nesting sequential groups of
stages
inside astage
. - 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-outsh
andbat
steps. - JENKINS-41239 - Add new
cleanup
post
condition to always run, after every otherpost
condition has run. - JENKINS-50833 - Revert
DeclarativeAgentDescriptor.all()
signature to unbreak Pipeline Editor. - JENKINS-50682 - Fix
when
conditionstag
andchangeRequest
in Directive Generator.
Version 1.2.8 (Apr 5, 2018)
- JENKINS-49677 - Better uniqueness on Dockerfile tag name.
- JENKINS-49226 - Add new
equals
condition forwhen
. - JENKINS-49976 - Prevent serialization warnings related to
ModelASTValue
inner classes. - JENKINS-41060 - Add new
fixed
andregression
post
conditions. - JENKINS-49558 - Add new
newContainerPerStage
option, which will spin up a fresh container of adocker
ordockerfile
top-level agent for each stage, rather than reusing the same container across all stages. - JENKINS-48523 -
when
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-levelagent
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 butSUCCESS
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
forparallel
stages parent. - JENKINS-44461 - Add
beforeAgent
option forwhen
- if true,when
conditions will be evaluated before entering theagent
. - 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
forstage
- supports block-scoped "wrappers" liketimeout
and Declarative options likeskipDefaultCheckout
. - JENKINS-48379 - Add
input
directive forstage
- runs theinput
step with the supplied configuration before entering thewhen
oragent
for astage
, and makes any parameters provided as part of theinput
step available as environment variables. - JENKINS-44277 - Add
checkoutToSubdirectory(...)
Declarative option for use in top-level or perstage
options
directive.
Version 1.2.5 (Nov 22, 2017)
- JENKINS-46597 - Fix serialization errors due to
checkout
returned environment variables. - JENKINS-47928 - Don't run
post
failure block for skipped parallel container stages after previous stage failures. - JENKINS-46854 - Better validation of errors in
script
andexpression
blocks defined in the editor. - JENKINS-48115 - Pick
workflow-step-api
2.14 to make sure we don't get hosed by bad metasteps. - JENKINS-37663 - Fix
junit
1.22 and laterUNSTABLE
result check inpost
by comparingCpsFlowExecution.getResult()
as well asRun.getResult()
. - JENKINS-46252 - Mark any job that's had a Declarative run with
DeclarativeJobAction
.
Version 1.2.4 (Nov 8, 2017)
- JENKINS-47814 - Stop double-validating contributed validators for
post
and method calls - JENKINS-47781 - Truly fix the scoping of triggers, job properties, and build parameters
Version 1.2.3 (Nov 3, 2017)
- JENKINS-46403 - Prevent infinite loop on run start in Job DSL-created jobs.
- JENKINS-47421 - Fix issue with loading running builds from earlier versions.
- JENKINS-46597 - Hopefully fix serialization issue with
TreeMap.Entry
. - JENKINS-47559 - Skip further validation of non-method
when
condition, since it's already known to be invalid and can cause NPEs in further validation for no benefit. - JENKINS-47600 - Properly special-cases
VALUE = "${env.VALUE}"
inenvironment
the same as we handleVALUE = "${VALUE}"
- JENKINS-47781 - Narrow scope of
Describable
resolution fortriggers
,options
, andparameters
.
Version 1.2.2 (Oct 5, 2017)
- JENKINS-47202 - Fix serialization of
environment
containing steps. - JENKINS-47197 - Make sure we don't require Java 8 at runtime.
Version 1.2.1 (Sept 29, 2017)
- JENKINS-47106 - Switch to
alwaysPull
option fordocker
- JENKINS-47109 - Add support for
failFast
for parallelstage
s - JENKINS-47193 - Don't break parsing of
Jenkinsfile
due toclass
orenum
defined in it as well aspipeline
block.
Version 1.2 (Sept 21, 2017)
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
stage
s. - JENKINS-45198 - When on core 2.60+ with
pipeline-scm-step
2.6+ and recent versions ofgit
,subversion
, ormercurial
plugins, include SCM-provided variables in environment automatically. - JENKINS-42753 - Rewrite of runtime parser, fixing a bunch of issues with
environment
,when expression
, variable and function behavior consistency, and more.- Related tickets:
- JENKINS-44298 - Usage of variables and functions defined outside the
pipeline
block can work inwhen 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 inenvironment
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 theenvironment
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-44298 - Usage of variables and functions defined outside the
- Related tickets:
- 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.
Version 1.1.9 (July 25, 2017)
- JENKINS-45081 - Stop erroring out on use of object methods named
pipeline
outside of a Declarative Pipeline. - JENKINS-45098 - Properly validate use of a tool without a version.
- JENKINS-42338 - Make sure
tools
defined at the top-level are installed onstage
-levelagent
s.
Version 1.1.8 (July 4, 2017)
- JENKINS-45270 - Fix
retry
use inoptions
directive. - JENKINS-43071 - Only require
Jenkins.READ
permissions for CLI linter.
Version 1.1.7 (June 21, 2017)
- JENKINS-44898 - Workaround for JENKINS-44898 for other plugins implementing
WithScript
extension points until we've moved to Jenkins core 2.66 or later.
Version 1.1.6 (June 12, 2017)
- JENKINS-44809 - Fix problem causing duplicate
JobProperty
and related errors.
Version 1.1.5 (June 8, 2017)
- JENKINS-44149 - Properly clean up stale/defunct
JobProperty
,Trigger
andParameterDefinition
left behind upon removal fromJenkinsfile
. - JENKINS-43816 - Make sure we always have a non-null
execution
before parsing. - JENKINS-43055 - Get rid of noisy warnings regarding unset heads in Jenkins log.
- JENKINS-44621 - Don't remove
JobProperty
,Trigger
andParameterDefinition
defined outside of theJenkinsfile
.
Version 1.1.4 (May 2, 2017)
- JENKINS-43339 - Properly handle non
FAILURE
build results fromFlowInterruptedException
. - JENKINS-43872 - Escape dollar signs in
environment
correctly. - JENKINS-43910 - Allow use of
FileCredentials
inenvironment
variables.
Version 1.1.3 (Apr 20, 2017)
- JENKINS-43486 - Handle non-String environment values properly.
- JENKINS-43404 - Escaped double quotes within environment values were over-resolved.
- JENKINS-42748 - Escaped backslashes in environment weren't properly escaped at evaluation time.
Version 1.1.2 (Apr 5, 2017)
- JENKINS-42762 - Go back to allowing multiple conditions directly in a
when
directive. - JENKINS-42693 - Add
additionalBuildArgs
parameter fordockerfile
. - JENKINS-42771 - Allow + binary expressions in env values.
- JENKINS-43195 - Relocate
com.github.fge.*
JSON schema classes to allow other uses of different versions of the library. - JENKINS-41456 - Support validation from multiple named parameters of a
DataBoundConstructor
with a singleMap
parameter only. - Brazilian Portuguese localization! Thanks to kinow and boaglio!
- JENKINS-43137 - Triple quoted strings work again in
environment
. - JENKINS-43143 - Parameters are available in
environment
values again. - JENKINS-43177 - Scrub
env.WHATEVER
inenvironment
values for cross-references. - JENKINS-43013 - Round-robin resolution of
environment
values means ordering of declaration does not need to be relevant. - JENKINS-42858 -
credentials
environment variables are available for reference inenvironment
values, andenvironment
variable values are available for use incredentials
strings as well.
Version 1.1.1 (Mar 13, 2017)
- 1.1 was inadvertently built with Java 8 and has errors when run with Java 7. 1.1.1 is a rebuild of 1.1 with the correct Java 7 used.
Version 1.1 (Mar 13, 2017)
- JENKINS-42230 - Move all extension points provided by Declarative into a single new plugin for simpler dependencies.
- JENKINS-42168 - Added
validateDeclarativePipeline
step for validating Declarative Pipelines from within Pipelines. Meta! - JENKINS-41503 - Fix behavior of
null
translation between JSON and Groovy representations. - JENKINS-42286 - Allow directory separators in
Dockerfile
file names. - JENKINS-42470 - Don't require a crumb for the
pipeline-model-converter
API endpoint. - JENKINS-38110 - Add a
libraries
directive for specifying shared libraries to load in to the build. - JENKINS-41118 - Support custom workspaces.
- JENKINS-42473 - Don't use parse results from any source but the
Jenkinsfile
. - JENKINS-41185 - Add support for
anyOf
,allOf
andnot
when
conditions that contain otherwhen
conditions. - JENKINS-42498 - Fix
when
/environment
serialization error when XStream serialization is used behind the scenes. - JENKINS-42640 - Properly handle validation of
String
->int
- JENKINS-42551 - Reject
String
values in JSON that would lead to invalid Groovy syntax, and reject any JSON that converts to invalid Groovy syntax generally. - JENKINS-42550 - Properly point to bad top-level entries in validation.
- JENKINS-41748 - Allow cross referencing of variables in
environment
section to actually work. - JENKINS-41890 - Make sure
env.WORKSPACE
can be referenced inenvironment
section properly.
Version 1.0.2 (Feb 21, 2017)
- JENKINS-42027 - Global configuration for Declarative-specific Docker settings (label, registry) were not persisting across restarts.
- JENKINS-41668 - Add a "dir" option for Dockerfile Declarative agent.
- JENKINS-41900 - Move "should I do checkout?" logic around for simpler code in extensions of Declarative agents.
- JENKINS-41605 - Auto-checkout from SCM in per-stage agents if they're not reusing the same node block as the top-level agent.
- JENKINS-41950 - Properly report errors outside stages.
- JENKINS-41645 - Better validation for non-binary expressions in
environment
block. - JENKINS-42039 - Add a Declarative option for "treat unstable as failure".
- JENKINS-42226 - Prevent
NullPointerException
when a null value is used forwhen
branch
condition.
Version 1.0.1 (Feb 10, 2017)
- JENKINS-41911 - Shade JSON schema-related dependencies to avoid issues with conflicting library versions when certain other plugins (such as
jackson2-api
) are installed.
Version 1.0 (Feb 1, 2017)
- First non-beta release. No changes from 0.9.
Version 0.9.1 (still Beta 3) (Jan 27, 2017)
- JENKINS-41490, JENKINS-41491 - Fixing JSON support for nested tree steps and validation of certain tree steps.
- JENKINS-41518 - Add validation of environment variable names to be valid Java identifiers - only relevant for JSON->Jenkinsfile conversion since this would already have shown up as a compilation error in a Jenkinsfile.
- Catching a few validation fixes and string changes.
Version 0.9 (Beta 3) (Jan 25, 2017)
- FINAL BETA - if a blocker bug is discovered before 1.0 is released, additional point releases may be done before 1.0.
- JENKINS-40984 - Always evaluate all possible
post
conditions even if an earlier one fails. - JENKINS-39684 - Allow configuration of registry URL and credentials for
docker
anddockerfile
agent
types. - JENKINS-40866 - Allow per-
stage
agent
configuration ofdocker
anddockerfile
to run on the samenode
as the top-level, so that you can reuse the workspace. - JENKINS-41050 - Perform SCM checkout on raw node first even if we're using
docker
ordockerfile
. - JENKINS-41243 - Speeding up tagging of synthetic stages for improved UX in Blue Ocean.
Version 0.8.2 (still Beta 2) (Jan 12, 2017)
- JENKINS-41012 -
when
branch
andenvironment
conditions did not actually work. Fixed. - Fixing an issue with validation/parsing outside the context of a run.
Version 0.8.1 (still Beta 2) (Jan 10, 2017)
- Fixing compatibility warning to say compatible since 0.8.
Version 0.8 (Beta 2) (Jan 10, 2017)
- JENKINS-40418 - Fix previously-not-running validation for triggers, parameters and properties.
- JENKINS-40337 - Rename
properties
tooptions
and add the first Declarative-specificoption
,skipDefaultCheckout
. - JENKINS-40462 - Get rid of
wrappers
section, move wrappers liketimeout
andretry
intooptions
section. - JENKINS-40580 - Quote parallel branch names to make sure they're valid.
- JENKINS-40642 - Add additional default imports so that things like
@Library
and@NonCPS
work. - JENKINS-40239 - Add descriptions for build conditions.
- JENKINS-40393 - Internationalize error messages!
- JENKINS-40524 - Reworked
agent
syntax to be more extensible and consistent. - JENKINS-40370 - Improved
when
syntax and helpers.
Version 0.7.1 (still Beta 1) (Dec 13, 2016)
- Re-spinning release due to a mixup that resulted in one of the sub-plugins not ending up in the Update Center.
Version 0.7 (Beta 1) (Dec 13, 2016)
- JENKINS-39134 - Fix issue with Guice and resuming a build within a
script
block. - JENKINS-38153 - Use the new
TagsAction
class to mark skipped stages so that Blue Ocean can render them accurately. - JENKINS-39923 - Add new
jenkins-cli
command for linting a Declarative Jenkinsfile. - JENKINS-40136 - Properly allow use of
failFast
withparallel
. - JENKINS-40226 - Make sure non-
stage
failures still triggerpost
failure conditions.
Version 0.6 (Nov 17, 2016)
- JENKINS-39216 - Add
dockerfile
agent backend, auto-building a Dockerfile and running the build in the resulting image. - JENKINS-39631 - Fix error status for steps within stages.
- JENKINS-37781 - Add conditional execution of individual stages via the
when
section. - JENKINS-39394 - Removing
notifications
completely, renamingpostBuild
topost
for consistency with post-stage actions. - JENKINS-39799 - Fix a bug with invalid
post
contents.
Version 0.5 (Nov 2, 2016)
- JENKINS-37823 -
wrappers
section for wrapping the entire build in a block-scoped step, likeretry
ortimeout
. - JENKINS-38433 -
agent
backends are now pluggable. - JENKINS-39245 - Added
environment
section support in stages. - JENKINS-39244 - Added
tools
section support in stages. - JENKINS-38993 - Deterministic order for post-build/stage condition execution.
- JENKINS-39011 - Properly error out if the
pipeline
step is present but not at the top-level. - JENKINS-39109 - Add a configuration option for what label to use for docker agents.
- JENKINS-38865 - Split the AST into a separate plugin so others can depend on it without pulling everything in.
- JENKINS-38331 - Per-stage configuration for agent.
- JENKINS-37792 - Post-stage actions added.
Version 0.4 (Oct 11, 2016)
- 0.3 was inadvertently built with Java 8 - so a new release is needed.
- JENKINS-37824 - Support for job properties, triggers and build parameters.
Version 0.3 (Oct 10, 2016)
- JENKINS-38818 - Correctly escape string constants when generating groovy from AST
- JENKINS-38564 - API to convert json step blob to step syntax (and back) - one step at a time
- JENKINS-37788 - Use
isLiteral
instead ofisConstant
- JENKINS-38426 - Allow non-literal expressions for environment variable values.
- JENKINS-38242 - Allow specifying arguments for Docker.
- JENKINS-38152 - Expose the execution model on the
WorkflowRun
. - JENKINS-37932 - Add
agent any
to replaceagent label:""
. - JENKINS-38097 - Execute empty named stages for any planned stages after a stage fails so that execution model and actual execution match up.
Version 0.2 (Sept 8, 2016)
- JENKINS-37897 - switch to block-scoped stages and add synthetic stages for notifications and postBuild.
- JENKINS-37828 - Properly reject mixes of
parallel
and other steps. - JENKINS-37928 - Properly detect sections without values.
- JENKINS-38047 - Allow multiple unnamed parameters in declarative subset.
Version 0.1 (Aug 30, 2016)
- Initial beta release. Functional but limited.