Jenkins : Pipeline Supporting APIs Plugin

Plugin Information

View Pipeline: Supporting APIs 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:

Common utility implementations to build Pipeline PluginA component of Pipeline Plugin.


3.3 (2019 Apr 25)

  • Developer: Add support for FlowNode to DefaultStepContext.get(Class) (PR 94)
  • Internal: Update parent POM and Javadoc so that the plugin can build with all tests passing on Java 11 (PR 92)

3.2 (2019 Feb 01)

  • JENKINS-51170: Enable the StepEnvironmentContributor extension point added in version 2.19 of Pipeline Step API Plugin
  • Fix: Add custom JEP-200 class filter entry so that org.jboss.marshalling.TraceInformation$IndexInfo, which may occur in some error messages related to saving and loading Pipeline builds, can be serialized and deserialized without any warnings being printed to build logs (PR 90)
  • Internal: Use APIs from newer versions of Jenkins core to clean up some code paths (PR 91)

3.1 (2019 Jan 16)

  • Internal: Remove test scope dependency on obsolete workflow-scm-step tests artifact (PR 88)
  • Internal: Simplify configuration for the compatibility warning shown when upgrading to the 3.x line of the plugin (PR 89)

3.0 (2019 Jan 03)

This update involves incompatible changes to the serialized format of Pipeline builds. Any Pipelines that are running when Jenkins is restarted to apply this upgrade will fail after the restart. Pipelines will be able to resume normally after subsequent restarts.

To avoid this one-time issue, please stop all running Pipelines or allow them to complete before restarting Jenkins when applying this update.

  • JENKINS-52187: Update JBoss Marshalling dependency, which is used to serialize and deserialize Pipeline data across Jenkins restarts, in order to support newer versions of Java.

2.24 (2018 Dec 12)

  • JENKINS-26138: Add a sidebar link to Pipeline builds in the classic UI to show all workspaces used by the build.
  • PR #85: Fix the implementation of currentBuild.getBuildCauses(String fullyQualifiedClassName) so that it works correctly when the class name refers to a class defined in a different plugin.

2.23 (2018 Nov 30)

  • JENKINS-54531: Update documentation for currentBuild.getBuildVariables
  • Avoid use of deprecated APIs (PR 76)

2.22 (2018 Nov 02)

  • JENKINS-41272/JENKINS-54227: Safely expose build causes in Pipeline as JSON. Build causes can be accessed as follows:
    • currentBuild.getBuildCauses()
    • currentBuild.getBuildCauses(String fullyQualifiedClassName)

2.21 (2018 Oct 12)

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

  • currentBuild documentation updates.

2.21-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-45693: support for TaskListenerDecorator API.

  • currentBuild documentation updates.

2.20 (Aug 7, 2018) - Users are encouraged to combine this with an updates to the Pipeline Job Plugin and Pipeline Nodes and Processes Plugin

  • JEP-206 Use UTF-8 for all Pipeline build logs

2.19 (Jun 25, 2018)

2.18 (Feb 5, 2018)

2.17 (Jan 22, 2018)

  • Major Feature: Add APIs for FlowNodeStorage to provide more granular control of when/how they write to disk  (JENKINS-47172)
    • Allows for deferred writes, where a FlowNode has all its actions attached before being written (cuts writes ~1/2 or more)
    • Provides facilities a bit like DB transactions
  • Major Feature: New and MUCH more efficient pipeline FlowNode storage  (JENKINS-47173)
    • Stores all FlowNodes in a single file, allowing for much faster bulk streaming read/writes, and faster access.
    • Available with the performance-optimized durability setting - see Jenkins documentation for Pipeline Scalability for what you need to enable this.
  • Enhancement:  More compact representation of FlowNodes by using XStream Aliases (JENKINS-49084)
    • Applies to all of the FlowNode storage engines, and reduces size-on-disk (and data written) by about 30%
    • Compatibility note: after this change, builds with this plugin version CANNOT be read by older versions of this plugin
  • Feature: utility API to switch between atomic and non-atomic XStream serialization
  • Robustness enhancement: Timeout utility tries to repeatedly interrupt threads and notes that this is happening (PR#48)
  • Feature: Sandboxed access to upstream build information (JENKINS-31576)
  • ClassFilter entries to ensure the XStream/Remoting whitelist doesn't break Pipeline
  • Bugfix: Fix a Groovy memory leak introduced previously with the Timeout utility: ensure that the timeout threadpool cannot be lazy-initialized with a GroovyClassloader as its contextClassloader

2.16 (Oct 13, 2017)

  • JENKINS-26148 Create a default implementation of StepExecution.stop
  • Add a WithThreadName utility to give threads more meaningful names for debugging

2.15 (Sep 26, 2017)

2.14 (Mar 31, 2017)

  • JENKINS-42952 Make currentBuild.duration work.
  • JENKINS-42521 Added a currentResult property and resultIsBetterOrEqualTo / resultIsWorseOrEqualTo methods to currentBuild and the return value of build.
  • JENKINS-40934 Speedup of log-related code run when adding a new step when using a massive number of parallel branches.
  • Robustness fix noted in JENKINS-26137.
  • Robustness fix associated with JENKINS-42556: tolerate errors encountered when printing progress of build resumption tasks.

2.13 (Feb 13, 2017)

No user-visible changes.

2.12 (Jan 10, 2017)

Should be no user-visible changes.

2.11 (Nov 11, 2016)

  • Optimization: don't throw away the Actions attached to a FlowNode when loaded from disk (avoids double-loading)
  • Small things:
    • Remove SemaphoreListener (dead code from testing)

2.10 (Oct 20, 2016)

  • Regression in log handling with certain steps inside parallel in 2.9.

2.9 (Oct 19, 2016)

  • Allow block-scoped steps to provide log output in addition to their what their bodies contribute (JENKINS-34637 related)
  • Make PauseAction implement PersistentAction so it consumes the API optimizations from JENKINS-38867
  • Small things:
    • Generics fix for JDK 9 support
    • Add a getStatus method to Semaphore step (used in testing)

Do not use, there is a known regression which will be fixed shortly in 2.10.

2.8 (Sep 26, 2016)

  • Restore use of the DepthFirstScanner API that was reverted in JENKINS-38457 now that its handling of parallels matches FlowGraphWalker

2.6 (Sep 23, 2016)

2.5 (Sep 16, 2016)

  • Clean up display of timing information in pipeline steps for a few edge cases (no start time on node, times under 1 ms)
  • Remove some obsolete approveSignature calls

2.4 (Sep 09, 2016)

  • Added timing information to pipeline steps step display (show how long a step or block ran for)

2.3 (Sep 09, 2016)

  • JENKINS-37366 Added properties fullDisplayName, projectName, and fullProjectName to currentBuild or return value of build step.

2.2 (Jul 11, 2016)

  • JENKINS-30412 Sandbox-friendly changeSets property for currentBuild or return value of build step.
  • JENKINS-36306 duration property for return value of build step.

2.1 (Jun 16, 2016)

  • Infrastructure for JENKINS-26130.
  • Fixed title of log pages from Pipeline Steps.

2.0 (Apr 05, 2016)