Due to some maintenance issues, this service has been switched in read-only mode, you can find more information about the why

and how to migrate your plugin documentation in this blogpost

Skip to end of metadata
Go to start of metadata

Plugin Information

View Pipeline: API on the plugin site for more information.

Plugin that defines Pipeline API.

A component of Pipeline Plugin.


2.37 (2019 Aug 29)

  • Fix: Proxy exceptions when the exception class is implemented in a Pipeline script to avoid leaking the class loader for the Pipeline script through ErrorAction. (PR 102)
  • Fix: Avoid leaking ThreadLocal variables used in buffering-related logic for Pipeline logs. (JENKINS-58899)
  • Internal: Update tests to fix PCT failures. (PR 99)

2.36 (2019 Aug 01)

  • Developer: TaskListenerDecorator API is now stable instead of a beta API. (PR 97)
  • Developer: Introduce new StepListener API to allow interception of step execution. (PR 96)
  • Developer: Introduce new FlowExecutionListener.onCreated method. (PR 92)

2.35 (2019 Jun 07)

  • Fix: Prevent StandardGraphLookupView.bruteForceScanForEnclosingBlocks from throwing IndexOutOfBoundsException in some scenarios. (JENKINS-57805)
  • Fix: Catch additional types of exceptions when iterating through FlowExecutionList. Fixes some cases where Jenkins might fail to start because of a problem with a single build. (PR 93)

2.34 (2019 May 10)

  • Improvement: Add the name of the stash to the exception thrown when trying to create an empty stash. (PR 86)
  • Fix: Use the correct parameter to set nodeAfter in the 4-parameter MemoryFlowChunk constructor. (PR 89)
  • Developer: Add a new API called WarningAction that can be added to a FlowNode to indicate that some non-fatal event occurred during execution of a step even though the step completed normally. (JENKINS-43995JENKINS-39203)

2.33 (2018 Nov 19)

  • JENKINS-54566: Prevent the error "Failed to execute command Pipe.Flush(-1)" from occurring by flushing streams before they have been garbage collected.

2.32 (2018 Nov 09)

  • Developer: Add an SPI for LogStorage implementations to satisfy WorkflowRun#getLogFile. (Part of JENKINS-54128, but version 2.29 of Pipeline Job Plugin contains the actual fix)

2.31 (2018 Oct 26)

  • JENKINS-54073: Buffer remote log output to fix logging-related performance issues.

2.30 (2018 Oct 12)

  • JEP-210: redesigned log storage system for Pipeline builds. Should have no effect unless Pipeline Job Plugin is also updated.
  • JENKINS-45693TaskListenerDecorator API.

  • Improvement: Mark interrupted steps using a gray ball instead of a red ball in the Pipeline steps view to distinguish them from failures.

2.30-beta-1 (2018 Oct 04)

  • JEP-210: redesigned log storage system for Pipeline builds. Should have no effect unless Pipeline Job Plugin is also updated.
  • JENKINS-45693TaskListenerDecorator API.

  • Improvement: Mark interrupted steps using a gray ball instead of a red ball in the Pipeline steps view to distinguish them from failures.

2.29 (2018 Jul 24) - Bleeding-Edge Release

  • No user-visible changes - test utilities for ArtifactManager

2.27.1 (Unreleased) Stable Release

  • Support for Incremental releases
  • Minor fix to displayed message format
  • Improvement: Mark interrupted steps using a gray ball instead of a red ball in the Pipeline steps view to distinguish them from failures.

2.28 (June 15, 2018) - Bleeding-Edge Release

  • Now requires Jenkins core 2.121
  • Support for Incremental releases
  • Beta: Support for VirtualFile use with stash & artifacts (JENKINS-49635)
  • Minor fix to displayed message format

2.27 (Apr 12, 2018)

  • Add ability to insert a placeholder for Step Arguments that cannot be serialized (API to support JENKINS-50752 fix)
  • Improvement/Bugfix: Catch all errors thrown when saving the FlowNode in an error-safe way, to allow processes to complete normally 

2.26 (Feb 23, 2018)

  • Bugfix: Deal with additional unserializable Throwable types (JENKINS-49025)

2.25 (Jan 22, 2018)

  • Now Requires Java 8 (core 2.60.3+)
  • Major new feature: Durability Settings & Ability To Disable Pipeline Resume
    • Object and APIs to pass Durability Settings into an Execution - JENKINS-47300
    • API for disabling resume for a Pipeline JENKINS-33761
    • UI for setting a global default Durability setting to apply to pipelines
  • Small micro-optimization to reduce garbage generated when displaying arguments for step

2.24 (Dec 4, 2017)

  • JENKINS-47725 - Fix a WeakHashMap synchronization issue
  • Minor POM changes & making an API slightly more restrictive in Generics it returns

2.23.1 (Oct 24, 2017)

  • Revert JENKINS-40912 -  the change caused stash steps to hang in specific cases.  Will be amended and re-released with fixes.

2.23 (Oct 24, 2017)

2.22 (Sep 26, 2017)

  • New APIs to provide fast access to information about the structure of the pipeline graph
    • Provides enclosing block information for nodes (JENKINS-27395 and partial implementation of JENKINS-37573)
    • Lets us run parallels with numerous branches far more quickly by adding an isActive API & making it performant (JENKINS-45553
    • Provides a more correct isActive API rather than isRunning to determine if a step or block is complete or not (JENKINS-38223)

2.20 (Aug 1, 2017)

  • Make the PersistentAction API public to help with optimizing frequent action lookups in other pipeline plugins

2.19 (Jul 24, 2017)

  • JENKINS-44636 New QueueItemAction for tracking node block queue status.

2.18 (Jun 29, 2017)

2.17 (Jun 5, 2017)

  • JENKINS-38536 Fix finding the last FlowNode for an in-progress parallel with a long-running step

2.16 (May 30, 2017)

2.15 (May 22, 2017)

2.13 (Apr 13, 2017)

  • JENKINS-42895 Fix sanity checks failing when running a pipeline with a parallel containing 0 branches

2.12 (Mar 6, 2017)

  • JENKINS-39839 GraphAnalysis visitor fix: missing parallel events in specific nested/incomplete parallel cases
  • JENKINS-39841 GraphAnalysis visitor fix: null StartNode for certain parallel events
  • JENKINS-41685 GraphAnalysis visitor fix: duplicate events with certain parallel structures
  • JENKINS-38536 GraphAnalysis visitor fix: part of fix to timing computation for incomplete parallels - apply ordering to ensure the parallelEnd event triggers on the last parallel branch with activity.
  • Variety of small new GraphAnalysis features, such as sorting Comparators for FlowNodes and a one-step method to get all FlowNodes
  • Harden the GraphAnalysis visitor API guarantees and better documentation of the APIs and their assumptions + guarantees

2.11 (Feb 14, 2017)

  • JENKINS-40771 Race condition when scheduling >1 Pipeline build simultaneously could cause builds to not be recorded in the list of running builds, and thus fail to resume after a restart.
  • JENKINS-39346 Certain kinds of nested exceptions could cause a messy build failure (extends fix made in 2.5).
  • FlowCopier extensions.

2.10 (Feb 7, 2017)

  • Add StepNode so plugins can obtain StepDescriptor information for a FlowNode without requiring a workflow-cps plugin dependency

2.8 (Dec 1, 2016)

  • Fix: JENKINS-38536 Resolve case where SimpleBlockVisitor does not find the correct last branch out of a set of parallels

2.7 (Nov 29, 2016)

  • Fix: JENKINS-38089 Fix a case where special parallel pipelines would break the graph analysis APIs
  • Feature: Add a new TagsAction class to allow attaching metadata (as key-value pairs) to steps as a precursor to JENKINS-39522

2.6 (Nov 07, 2016)

  • JENKINS-39456 Reduce memory usage of execution graph.
  • Clarifying Javadoc of LinearScanner about passing multiple heads.

2.5 (Oct 19, 2016)

  • JENKINS-38867 Improved performance of basic step graph calculations, for example as used by the stage view.
  • JENKINS-34488 Various errors when trying to run assert statements, and under certain other conditions as well.
  • JENKINS-38640 Improved performance of stash on large artifacts.

2.4 (Sep 23, 2016)

  • JENKINS-38458 - Make DepthFirstScanner obey the same ordering rules as FlowGraphWalker, strictly
  • JENKINS-38309 - Make ForkScanner return parallel branches in last->first order for consistency with its general iteration

2.3 (Sep 07, 2016)

2.2 (Aug 25, 2016)

  • Major Feature: new suite of APIs for analyzing the graph of FlowNodes from an execution  (see package contents)
    • New FlowScanner classes, that provide utilities to iterate through, visit, or search FlowNodes in a specific order
      • See JavaDocs for more info
      • LinearScanner (walks through nodes, ignoring all but 1 branch of a parallel: very fast)
      • LinearBlockHoppingScanner - like LinearScanner but jumps over blocks (only sees preceding or inclusing nodes)
      • DepthFirstScanner - visits all nodes, walking to start before visiting side branches (fairly fast).
      • ForkScanner - visits all nodes, providing a linear order of block iteration (all branches in a parallel are visited before continuing)
        • Provides the more complex APIs below.
    • SAX-like API to slice the graph into blocks or runs of nodes ("Chunks") and return information about them.
      • ForkScanner.visitSimpleChunks does this execution
      • SimpleChunkVisitor interface: defines the basic callbacks used, implement this when collecting information.
      • ChunkFinder: defines the boundary conditions for starting & ending a chunk
        • A couple implementations included.
      • Container classes/APIs for collections of FlowNodes (Classes named *FlowChunk)
        • Classes *MemoryFlowChunk offer concrete representations that store FlowNodes in memory
      • StandardChunkVisitor: minimum ChunkVisitor implementation (assumes chunks come one after another, no nesting)
        • Extend me to store lists of chunks. 
  • Fix a NullPointerException with the FlowExecutionList
  • Dev-only: Javadocs & .gitignore changes

2.1 (Jun 16, 2016)

2.0 (Apr 05, 2016)

  • First release under per-plugin versioning scheme. See 1.x changelog for earlier releases.
  • Introduced FilePathUtils.