(December 3, 2019)
- Official release of Matrix for Declarative
- JENKINS-49500 - Update only changed Job Properties @gulyaev13 (#365)
- JENKINS-60217 - Support comparator pattern for the changeset directive @v1v (#366)
- JENKINS-60115 - Make toGroovy() and toJSON() @Nonnull @bitwiseman (#363)
- Update plugins.jenkins.io GitHub links @MarkEWaite (#364)
(November 4, 2019)
- JENKINS-59115 - Support comparator for the when branch @v1v (#351)
- JENKINS-37984 - Mitigate "Method code too large! error" @bitwiseman (#355)
- JENKINS-51865 - Introduce beforeOptions in 'when' @famod (#356)
- JENKINS-47703 - allow building dockerfile on Windows @casz (#354)
- JENKINS-54322 - enable markStageSkippedForConditional within the scripted @v1v (#346)
- Remove call to System.err.println in ModelInterprer.groovy @dwnusbaum (#334)
(June 7, 2019)
- JENKINS-57162
-
agent dockerfilename/hash should incorporate build args. - JENKINS-57826
-
poston astageshould handlecatchError'sstageResultas distinct from the status of the whole build.
(April 15, 2019)
- JENKINS-46354 - Don't skip all stages when retrying from top level.
(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
-
failFastoption for parallel stages no longer sets build status toABORTEDwhen other stages are aborted before entering their step execution.
(March 6, 2019)
- JENKINS-56405 - Don't require registry credentials if a registry URL is specified.
(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
unsuccessfulpost condition for successful builds. - JENKINS-55459 - Make parallel stages that fail fast result in the build being marked as failed, not aborted.
(January 8, 2019)
(December 10, 2018)
- JENKINS-49997 -
Add new
unsuccessfulpostcondition - JENKINS-53734 -
Allow use of
parallelwithin top-level sequential stages. - JENKINS-54919 -
Change processing of
agentcontents to allow references to newly defined parameter default values. - JENKINS-46894 -
Add a new
whencondition for checking the build's cause.
(November 27, 2018)
- Add REST API for Stage Restart functionality
- JENKINS-54047 -
Fix handling of
!expressions inenvironmentvariable resolution. - JENKINS-48556 -
Prevent sporadic failure to recognize block-scoped steps, such
as
timestamps, as validoptions. - JENKINS-50880 -
Add
beforeInputflag forwhen. - JENKINS-53558 -
New
optionfor settingfailFastfor all parallel stages in a Pipeline.
(August 31, 2018)
- JENKINS-51027 -
Include
postconditions in Directive Generator correctly. - JENKINS-51932 -
Include
isRestartedRuninwhenDirective Generator. - JENKINS-51931 -
Fix NPE if a
whencondition likeallOforanyOfhas no children. - JENKINS-51872 -
Fix
tooldropdowns in Directive generator. - JENKINS-51383 -
Properly catch/handle
Throwableas well asExceptionin stage execution. - JENKINS-51227 -
Add
quietPeriodDeclarative option. - JENKINS-53316 -
Switch to depending on
jackson2-apiplugin rather than shading everything Jackson/JSON-related ourselves. - JENKINS-52114 -
Make
postfailureandsuccessfor astagecare about whether thatstagehas an error, rather than the full build's status. This allows astagewithin aparallelthat does not have any errors but completes after anotherparallelstagethat does have an error (resulting in the build's status now beingFAILURE) to fire itspostsuccesscondition as would be expected.- NOTE: this does result in a small change in expected
behavior. If you are setting
currentBuild.resulttoFAILUREin astageand then have apostfailurecondition for that samestage, without ever actually having a true error or step failure in thestage, thepostfailurefor thestagein question will not fire.postfailureconditions on astagenow fire when there's an error in the execution of thestageonly, andpostsuccessconditions on astagefire whenever there is no error in the execution of thestage. - No change in behavior for any other
postcondition, or forpostoutside ofstages(includingsuccessandfailure) is introduced by this.
- NOTE: this does result in a small change in expected
behavior. If you are setting
(June 27, 2018)
- JENKINS-51962 - Propagate failures in nested sequential stages to top-level properly.
- JENKINS-52084 -
Execute
postfor sequential stage parent in proper context (such asagent)
(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
failureaftersuccessandunstable, in case thosepostconditions modify status. - JENKINS-50815 -
Fall back to
GIT_LOCAL_BRANCHforwhen branchcondition ifBRANCH_NAMEis not available. - JENKINS-43016 -
Convert empty string
labelforagenttoagent anyin JSON. - JENKINS-46809 -
Add support for nesting sequential groups of
stagesinside 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
preserveStashesoption has been specified, any stashes from the original build available to the new build. - JENKINS-44993 -
Don't swallow errors in
post.
(Apr 17, 2018)
- JENKINS-50652 -
Don't fire
failurefor aborted/timed-outshandbatsteps. - JENKINS-41239 -
Add new
cleanuppostcondition to always run, after every otherpostcondition has run. - JENKINS-50833 -
Revert
DeclarativeAgentDescriptor.all()signature to unbreak Pipeline Editor. - JENKINS-50682 -
Fix
whenconditionstagandchangeRequestin Directive Generator.
(Apr 5, 2018)
- JENKINS-49677 - Better uniqueness on Dockerfile tag name.
- JENKINS-49226 -
Add new
equalscondition forwhen. - JENKINS-49976 -
Prevent serialization warnings related to
ModelASTValueinner classes. - JENKINS-41060 -
Add new
fixedandregressionpostconditions. - JENKINS-49558 -
Add new
newContainerPerStageoption, which will spin up a fresh container of adockerordockerfiletop-level agent for each stage, rather than reusing the same container across all stages. - JENKINS-48523
-
whenconditions for checking if building a git tag or a change request (such as a GitHub pull request). - JENKINS-47106 -
Properly support
alwaysPulloption in top-levelagent ``docker - JENKINS-49893 - Declarative Directive Generator added.
(Jan 29, 2018)
- JENKINS-48758 -
Improve error messages around bare variables for
environmentvalues. - JENKINS-48752 -
Fix
postchangebehavior to not treat consecutive runs with any status butSUCCESSas changed. - JENKINS-49070 -
Prevent use of
BigDecimalto avoid serialization issues.
(Jan 12, 2018)
- JENKINS-48209 -
Prevent serialization problems with
whenexpression - JENKINS-48229 -
Use the agent's directory separator for
Dockerfilepath. - JENKINS-48266 -
Fix execution of
postforparallelstages parent. - JENKINS-44461 -
Add
beforeAgentoption forwhen- if true,whenconditions 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
optionsforstage- supports block-scoped "wrappers" liketimeoutand Declarative options likeskipDefaultCheckout. - JENKINS-48379 -
Add
inputdirective forstage- runs theinputstep with the supplied configuration before entering thewhenoragentfor astage, and makes any parameters provided as part of theinputstep available as environment variables. - JENKINS-44277 -
Add
checkoutToSubdirectory(...)Declarative option for use in top-level or perstageoptionsdirective.
(Nov 22, 2017)
- JENKINS-46597 -
Fix serialization errors due to
checkoutreturned environment variables. - JENKINS-47928 -
Don't run
postfailure block for skipped parallel container stages after previous stage failures. - JENKINS-46854 -
Better validation of errors in
scriptandexpressionblocks defined in the editor. - JENKINS-48115 -
Pick
workflow-step-api2.14 to make sure we don't get hosed by bad metasteps. - JENKINS-37663 -
Fix
junit1.22 and laterUNSTABLEresult check inpostby comparingCpsFlowExecution.getResult()as well asRun.getResult(). - JENKINS-46252 -
Mark any job that's had a Declarative run
with
DeclarativeJobAction.
(Nov 8, 2017)
- JENKINS-47814 -
Stop double-validating contributed validators for
postand 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
whencondition, 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}"inenvironmentthe same as we handleVALUE = "${VALUE}" - JENKINS-47781 -
Narrow scope of
Describableresolution fortriggers,options, andparameters.
(Oct 5, 2017)
- JENKINS-47202 -
Fix serialization of
environmentcontaining steps. - JENKINS-47197 - Make sure we don't require Java 8 at runtime.
(Sept 29, 2017)
- JENKINS-47106 -
Switch to
alwaysPulloption fordocker - JENKINS-47109 -
Add support for
failFastfor parallelstages - JENKINS-47193 -
Don't break parsing of
Jenkinsfiledue toclassorenumdefined in it as well aspipelineblock.
(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
stages. - JENKINS-45198 -
When on core 2.60+ with
pipeline-scm-step2.6+ and recent versions ofgit,subversion, ormercurialplugins, 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
pipelineblock can work inwhen expressionagain. - JENKINS-44482 - Pre-existing environment variables containing backslashes do not have their backslashes discarded.
- JENKINS-44603 -
Usage of variables and functions defined outside
the
pipelineblock work inenvironmentvariables again. - JENKINS-45636 -
Backslashes are correctly escaped when defined in one
new
environmentvariable 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 theenvironmentdirective. - JENKINS-44034 -
Variable references in
environmentvariable definitions no longer require curly braces. - JENKINS-46112 -
Logs for
errorsteps visible in Blue Ocean correctly. - JENKINS-45991 -
environmentvariables 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
whenconditions for referencing the build's changelog. - JENKINS-44039 -
Fixed round-tripping of single-quote multiline
scriptblocks from the editor. - JENKINS-46544 -
Give useful error message on use of bare
${...} outside quotes. - JENKINS-44497 -
Allow use of variables in
toolsvalues. - JENKINS-46547 -
Support declaration of
pipelineblocks in shared libraries'src/*.groovyfiles.
(July 25, 2017)
- JENKINS-45081 -
Stop erroring out on use of object methods named
pipelineoutside of a Declarative Pipeline. - JENKINS-45098 - Properly validate use of a tool without a version.
- JENKINS-42338 -
Make sure
toolsdefined at the top-level are installed onstage-levelagents.
(July 4, 2017)
- JENKINS-45270 -
Fix
retryuse inoptionsdirective. - JENKINS-43071 -
Only require
Jenkins.READpermissions for CLI linter.
(June 21, 2017)
- JENKINS-44898 -
Workaround for JENKINS-44898 for other plugins
implementing
WithScriptextension points until we've moved to Jenkins core 2.66 or later.
(June 12, 2017)
- JENKINS-44809 -
Fix problem causing duplicate
JobPropertyand related errors.
(June 8, 2017)
- JENKINS-44149 -
Properly clean up stale/defunct
JobProperty,TriggerandParameterDefinitionleft behind upon removal fromJenkinsfile. - JENKINS-43816 -
Make sure we always have a non-null
executionbefore parsing. - JENKINS-43055 - Get rid of noisy warnings regarding unset heads in Jenkins log.
- JENKINS-44621 -
Don't
remove
JobProperty,TriggerandParameterDefinitiondefined outside of theJenkinsfile.
(May 2, 2017)
- JENKINS-43339 -
Properly handle non
FAILUREbuild results fromFlowInterruptedException. - JENKINS-43872 -
Escape dollar signs in
environmentcorrectly. - JENKINS-43910 -
Allow use of
FileCredentialsinenvironmentvariables.
(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.
(Apr 5, 2017)
- JENKINS-42762 -
Go back to allowing multiple conditions directly in a
whendirective. - JENKINS-42693 -
Add
additionalBuildArgsparameter 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
DataBoundConstructorwith a singleMapparameter only. - Brazilian Portuguese localization! Thanks to kinow and boaglio!
- JENKINS-43137 -
Triple quoted strings work again in
environment. - JENKINS-43143 -
Parameters are available in
environmentvalues again. - JENKINS-43177 -
Scrub
env.WHATEVERinenvironmentvalues for cross-references. - JENKINS-43013 -
Round-robin resolution of
environmentvalues means ordering of declaration does not need to be relevant. - JENKINS-42858
-
credentialsenvironment variables are available for reference inenvironmentvalues, andenvironmentvariable values are available for use incredentialsstrings as well.
(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.
(Mar 13, 2017)
- JENKINS-42230 - Move all extension points provided by Declarative into a single new plugin for simpler dependencies.
- JENKINS-42168 -
Added
validateDeclarativePipelinestep for validating Declarative Pipelines from within Pipelines. Meta! - JENKINS-41503 -
Fix behavior of
nulltranslation between JSON and Groovy representations. - JENKINS-42286 -
Allow directory separators in
Dockerfilefile names. - JENKINS-42470 -
Don't require a crumb for the
pipeline-model-converterAPI endpoint. - JENKINS-38110 -
Add a
librariesdirective 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,allOfandnotwhenconditions that contain otherwhenconditions. - JENKINS-42498 -
Fix
when/environmentserialization error when XStream serialization is used behind the scenes. - JENKINS-42640 -
Properly handle validation of
String->int - JENKINS-42551 -
Reject
Stringvalues 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
environmentsection to actually work. - JENKINS-41890 -
Make sure
env.WORKSPACEcan be referenced inenvironmentsection properly.
(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
environmentblock. - JENKINS-42039 - Add a Declarative option for "treat unstable as failure".
- JENKINS-42226 -
Prevent
NullPointerExceptionwhen a null value is used forwhenbranchcondition.
(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.
(Feb 1, 2017)
- First non-beta release. No changes from 0.9.
(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.
(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
postconditions even if an earlier one fails. - JENKINS-39684 -
Allow configuration of registry URL and credentials for
dockeranddockerfileagenttypes. - JENKINS-40866 -
Allow per-
stageagentconfiguration ofdockeranddockerfileto run on the samenodeas the top-level, so that you can reuse the workspace. - JENKINS-41050 -
Perform SCM checkout on raw node first even if we're using
dockerordockerfile. - JENKINS-41243 - Speeding up tagging of synthetic stages for improved UX in Blue Ocean.
- JENKINS-41012 -
whenbranchandenvironmentconditions did not actually work. Fixed. - Fixing an issue with validation/parsing outside the context of a run.
- Fixing compatibility warning to say compatible since 0.8.
- JENKINS-40418 - Fix previously-not-running validation for triggers, parameters and properties.
- JENKINS-40337 -
Rename
propertiestooptionsand add the first Declarative-specificoption,skipDefaultCheckout. - JENKINS-40462 -
Get rid of
wrapperssection, move wrappers liketimeoutandretryintooptionssection. - JENKINS-40580 - Quote parallel branch names to make sure they're valid.
- JENKINS-40642 -
Add additional default imports so that things like
@Libraryand@NonCPSwork. - JENKINS-40239 - Add descriptions for build conditions.
- JENKINS-40393 - Internationalize error messages!
- JENKINS-40524 -
Reworked
agentsyntax to be more extensible and consistent. - JENKINS-40370 -
Improved
whensyntax and helpers.
- Re-spinning release due to a mixup that resulted in one of the sub-plugins not ending up in the Update Center.
- JENKINS-39134 -
Fix issue with Guice and resuming a build within a
scriptblock. - JENKINS-38153 -
Use the new
TagsActionclass to mark skipped stages so that Blue Ocean can render them accurately. - JENKINS-39923 -
Add new
jenkins-clicommand for linting a Declarative Jenkinsfile. - JENKINS-40136 -
Properly allow use of
failFastwithparallel. - JENKINS-40226 -
Make sure non-
stagefailures still triggerpostfailure conditions.
- JENKINS-39216 -
Add
dockerfileagent 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
whensection. - JENKINS-39394 -
Removing
notificationscompletely, renamingpostBuildtopostfor consistency with post-stage actions. - JENKINS-39799 -
Fix a bug with invalid
postcontents.
(Nov 2, 2016)
- JENKINS-37823 -
wrapperssection for wrapping the entire build in a block-scoped step, likeretryortimeout. - JENKINS-38433 -
agentbackends are now pluggable. - JENKINS-39245 -
Added
environmentsection support in stages. - JENKINS-39244 -
Added
toolssection support in stages. - JENKINS-38993 - Deterministic order for post-build/stage condition execution.
- JENKINS-39011 -
Properly error out if the
pipelinestep 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.
(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.
(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
isLiteralinstead 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 anyto 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.
(Sept 8, 2016)
- JENKINS-37897 - switch to block-scoped stages and add synthetic stages for notifications and postBuild.
- JENKINS-37828 -
Properly reject mixes of
paralleland other steps. - JENKINS-37928 - Properly detect sections without values.
- JENKINS-38047 - Allow multiple unnamed parameters in declarative subset.
(Aug 30, 2016)
- Initial beta release. Functional but limited.