Only noting significant user-visible or major API changes, not internal code cleanups and minor bug fixes.
- JENKINS-25779: snippet generator now omits default values of complex steps.
- Ability to configure project display name.
- Fixing
java.io.NotSerializableException: org.jenkinsci.plugins.workflow.support.steps.StageStepExecution$CanceledCause
thrown from certain scripts usingstage
. - JENKINS-27052:
stage
step did not prevent a third build from entering a stage after a second was unblocked by a first leaving it. - JENKINS-26605: Missing link to Full Log under Running Steps when a single step produced >150Kb of output.
catchError
was incorrectly setting build status to failed when it was merely aborted, canceled, etc.- PR 52: fixed some memory leaks causing the permanent generation and heap to grow unbounded after many flow builds.
- JENKINS-26101: the complete workflow script can now be loaded from an SCM repository of your choice.
- JENKINS-26149: the
build
step did not survive Jenkins restarts while running. - JENKINS-25570: added
waitUntil
step. - JENKINS-25924: added
error
step. - JENKINS-26030: file locks could prevent build deletion.
- JENKINS-26074: completed parallel branches become invisible until the whole parallel step is done
- JENKINS-26541: rejected sandbox methods were not offered for approval when inside
parallel
. - Snippet generator incorrectly suggested
pwd
when Groovy requirespwd()
. - JENKINS-26104: Custom Workflow step for sending mail
input
step did not survive Jenkins restarts.env
did not work in sandbox mode.load
step was not available in the Snippet Generator.println
now automatically whitelisted.- Incorrect build result (status) sometimes shown in log.
url:
can now be omitted from thegit
step when it is the only parameter.
No changes from 1.0-beta-1.
- Fixes to start time, duration, and similar aspects of flow runs.
BodyInvoker
andBodyExecutionCallback
replaceStepContext.invokeBodyLater
andBodyExecution.addCallback
for better control of execution behavior.
scm
step renamedcheckout
.- New syntax for structured objects, enabling more concise scripts without needing to import Jenkins-specific classes. Incompatible syntax change for callers of
checkout
andstep
steps. Snippet generator and documentation updated to match. - Added
timeout
step. - Better cancellation behavior when the stop button is pressed, for example killing all branches of
parallel
. - Fleshed out Groovy operators supported.
- Friendlier error in case a step is invoked without its required context, such as
sh
outsidenode
. - The flow graph table is now on its own page, accessible via the Running Steps link from a build.
- A visual graph of flow nodes is available from a hidden link
graphViz
. Similarly,flowGraph
links to a simple list of all nodes, including merge nodes that would not be visible in the regular table. - More useful information about the graph in the REST API for a flow build.
- Fixes to Groovy Git library.
- Fixed form validation for Groovy script.
- Fixed thread leak.
- Script security fix when the Email Ext plugin is also installed.
invokeBodyLater
now returns a newBodyExecution
, mainly to support cancellation of the body.- Fields in a
StepExecution
marked@Inject
or@StepContextParameter
will now be reinjected when resuming from disk.
- Moved
input
andbuild
steps to theworkflow-support
plugin (from theworkflow-basic-steps
plugin). - Added a label to
build
step nodes based on the display name of the downstream job. - Message was missing from Paused for Input page.
- Changed snippet generator to quote multiline strings using
'''
; quoting with/
(slashy strings) was not working well. - Added
PauseAction
to the API for potential use from visualizations. - Added support for
WorkspaceAction
to report labels, for potential use from visualizations. - Fixed environment variable handling when running builds on slaves, which had regressed with the introduction of
env
in beta 5. - No longer enforcing workspace-relative paths from
dir
,readFile
, andwriteFile
steps. - Added
FlowInterruptedException
to API. - Showing the flow build as aborted, rather than failed, if a user rejects an
input
prompt. - Flow termination from a
stage
step (due to a superseding build) can now be handled usingcatch
andfinally
blocks. - Fixed handling of
&&
and||
operators in Groovy. - Git-controlled Groovy library now expects sources to be under a directory
src/
rather than at top level. Also no longer need to pass athis
reference to a helper class from the main script. See documentation for this feature.
- Now based on Jenkins core 1.580.1.
- Elementary support for tracking workspaces used by a flow. Currently visible only by clicking on the flow node starting a
node
(orws
) step. - Properly reporting the job owning an executor slot (
node
step); useful for CloudBees Folders Plus controlled slaves, and perhaps other plugins as well. - Updated dependencies on Git and Subversion plugins to pick up important fixes.
- Some utility functions used by steps with unusual configuration factored out into a new API class
DescribableHelper
.
- Incompatible: some steps formerly using
value
as the name for a principal parameter now use a more descriptive name. You can still call them without specifying the field name; the difference is only visible if you were also specifying other optional parameters. evaluate
function may now be used to evaluate Groovy code CPS-transformed as if it were part of the main script. Newload
step lets you load and run a Groovy script from the workspace. A work in progress.- New plugin
workflow-cps-global-lib
allowing a global shared library for scripts. - Flow scripts may now be run in a Groovy sandbox to allow regular users to define them without administrator approval. More work is likely needed to supply a reasonable method call whitelist out of the box.
- Flow definition page has a section letting you visually configure a step and see the corresponding Groovy code to run it.
- Added some general inline help to the flow definition page regarding script syntax.
- Added
readFile
andwriteFile
steps to manipulate workspace files easily. - Added
tool
step to run a tool installer on the current node. - Added
bat
step to run commands on Windows nodes. build
step now sets an appropriate cause on the downstream build.build
step may now take parameters.- Faster display of output from shell steps.
- Robustness improvements for shell steps, especially in the face of disconnecting or rebooting slaves.
- Improved handling of parameter binding for classes using
@DataBoundSetter
. - Scripts can now read and write properties of a magic variable
env
to get and set environment variables applicable tosh
and similar steps. Overridden variables are also visible from the REST API. - Fixed icon in flow execution table.
- Not publishing
workflow-stm
plugin unless and until it is made functional. Existing installations may be deleted.
- Requires Jenkins core 1.580 or later.
- Better behavior on cloud slaves integrated with the Durable Task plugin.
- Allowing a build in the middle of a shell step to be interrupted.
- Allowed
SCMStep
to be extended from other SCM plugins. - Added
StageAction
andTimingAction
for the benefit of visualizations. - Allowing
build
to start builds of other workflows, not just freestyle projects.
- Requires Jenkins core 1.577 or later.
- Support for running some builders and post-build actions from a flow using the same code as in freestyle projects. See here for details.
- Added
catchError
step.
- Simplified threading model for Groovy engine.
- Added
build
step. StepExecution
now separated fromStep
.steps.
prefix now optional (only needed to disambiguate defined steps from other user functions with the same name).with.
prefix no longer in use.- Requires Jenkins core 1.572 or later.
- Removed custom
mercurial
step; can now use a genericscm
step (for example with the Mercurial plugin 1.51-beta-2 or later). - Hyperlinking of prompts from the
input
step.
First public release.