Jenkins : Pipeline Job Plugin

Plugin Information

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

Defines a new job type for pipelines and provides their generic user interface.

A component of Pipeline Plugin.

Changelog

2.35 (2019 Sep 10)

  • JENKINS-59083: Fix issue where Pipeline builds were considered to be in progress even after they had completed in some cases.
  • Internal: Refactor some tests to make them more consistent (PR 139)

2.34 (2019 Aug 21)

  • JENKINS-52189: Call FlowExecutionListener.onCreated method added in Pipeline: API Plugin 2.36 when a Pipeline execution is created but before it starts executing.
  • Internal: Clean up internal logic using newer and non-deprecated Java and Jenkins core APIs, fix compiler warnings, etc. (PR 132, PR 134PR 135, PR 136)

2.33 (2019 Jun 27)

  • JENKINS-46076: Modify WorkflowRun.isLogUpdated so that it does not return false while a Pipeline build is in the process of completing in some cases. Fixes some issues where JenkinsRule.waitForMessage worked inconsistently in tests.
  • Add internationalization support for the "Pipeline Steps" sidebar link in Pipeline builds. (PR 128)

2.32 (2019 Mar 08)

  • Internal: Update tests and test-scope dependencies so that the plugin can build with all tests passing on Java 11. (PR 124, PR 126)
  • Internal: Clean up internal logic using newer Jenkins core APIs. (PR 123)

2.31 (2018 Dec 12)

  • JENKINS-54304: Prefix log output with the name of the parallel branch that produced it in the console view of the classic UI whenever log output transitions from one branch to another.

2.30 (2018 Dec 06)

  • JENKINS-54904: Make the links that show and hide steps in the console view of Pipeline jobs work correctly in Firefox.
  • Avoid using deprecated APIs (PR #103)

2.29 (2018 Nov 09) - WARNING: Although issues have been fixed since 2.28, this version may carry extra risk and is not fully backwards compatible with 2.25 or older; consider waiting a few days to update in critical environments.

  • JENKINS-54128: Change the implementation of WorkflowRun#getLogFile to avoid creating a new temporary file each time the method is called.
  • Fix: Do not call WorkflowRun#getLogFile when an error occurs while opening the log file for a Pipeline to avoid logging an additional stack trace.

2.28 (2018 Nov 06) - WARNING: Although issues have been fixed since 2.27, this version may carry extra risk and is not fully backwards compatible with 2.25 or older; consider waiting a few days to update in critical environments.

  • Bugfix: avoid reading entire log to a buffer when fetching console text, avoiding potential OutOfMemoryException with large logs
  • Bugfix: log console text cut off after 10k lines (LargeText.MAX_LINES_READ) and won't show additional content
  • Avoid using deprecated APIs (PR #109)

2.27 (2018 Nov 01) - WARNING: Although major issues have been fixed since 2.26, this version carries extra risk and is not fully backwards compatible with 2.25 or older; consider waiting a few days to update in critical environments.

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

2.26 (2018 Oct 12) - WARNING: This version carries extra risk and is not fully backwards compatible; consider waiting a few days to update in critical environments. Update Pipeline Groovy Plugin to 2.58+ along with this update.

  • JEP-210: redesigned log storage system for Pipeline builds. This update involves a new log file format. Older releases will be able to display the whole-build log in a somewhat degraded fashion in the classic, though not Blue Ocean, UI. You are advised to also update Pipeline Groovy Plugin to 2.58.
  • JENKINS-45693: support for TaskListenerDecorator API.

  • Chinese localizations have been migrated to the Localization: Chinese (Simplified) Plugin.

Major reported issues:

  • Claimed excessive CPU usage on loaded systems ( JENKINS-54073 - "Pipeline: Job" plugin causes Jenkins Master CPU to peg to ~100% during pipelines with parallel steps Resolved ). Recommend installing the Support Core Plugin and/or being prepared to offer thread dumps correlated with top output.
  • Loss of timestamps ( JENKINS-54081 - Timestamps missing for agent-based steps in Pipeline Job 2.26 Resolved ) and some forms of console colorization ( JENKINS-54133 - No ANSI coloring on slave agents in pipeline Closed ) when running builds on agents.

2.26-beta-1 (2018 Oct 04)

  • JEP-210: redesigned log storage system for Pipeline builds. This update involves a new log file format. Older releases will be able to display the whole-build log in a somewhat degraded fashion in the classic, though not Blue Ocean, UI. You are advised to also update Pipeline Groovy Plugin to 2.58-beta-1.
  • JENKINS-45693: support for TaskListenerDecorator API.

2.25 (Sep 5, 2018)

  • Fix: Prevent builds from resuming in some cases despite their execution having completed (JENKINS-50199)

2.24 (Aug 7, 2018) - IMPORTANT: also upgrade the Pipeline Nodes and Processes Plugin to v2.20+ along with this upgrade, to avoid potential log encoding issues.

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

2.23 (July 10, 2018)

  • Reduce addition thread contention bottlenecks around the WorkflowJob#getSettablePromise and WorkflowJob#getExecutionPromise methods 
    • Usually only important in specific edge cases such as highly parallel builds with lots of build trigger steps
  • Chinese Translations (thanks, community contributor Suren!)

2.22 (June 28, 2018)

  • Reduce thread contention bottlenecks (especially with highly parallel Pipelines) - some introduced with fixes in 2.18-2.21 (JENKINS-51377)

2.21 (May 2, 2018)

  • We strongly encourage applying this fix, and encourage installing it at the same time as Pipeline Groovy (workflow-cps plugin) v2.50  or later due to related fixes
  • Fix: NullPointerException when saving modifying build descriptions and saving (JENKINS-50888)
  • Major Fix: Builds that failed in specific ways would mysteriously resume (JENKINS-50199)
  • Fix: Runs showing as still running or incomplete when they failed to load key data ("FlowNodes")
  • Fix: Restore protection against double onLoad calls to builds
  • Fix various issues around lazy loading of executions
  • Fix variety of synchronization issues where race conditions could occur

2.20 (Apr 20, 2018)

  • Bugfix: Fix a regression from lazy-loading FlowExecutions that prevented jobs from showing as Replayable and caused a few other small issues (JENKINS-50784)
  • Improvement: Remove unnecessary starts/stops of triggers (thanks to community contributor Scott Herbert)

2.19 (Apr 13, 2018)

2.18 (Apr 8, 2018):  WARNING Build Format Not Back-Compatible  - trying to load WorkflowRuns with 2.17 or earlier will show a 'double onLoad error'

  • Major bugfix / improvements: numerous fixes & improvements to make Pipeline persistence & resume more robust (across all Durability Settings)
    • These do not have individual JIRAs because they were spinoffs from testing other work, discovered with fuzzing-like approaches
    • Many of these bugs would result in irreproducible errors that may have been reported - link any related JIRAs here: (TBD)
    • Improves error-handling logic
  • Improvement: Lazy-Load FlowExecution For Completed Pipelines - Avoids Loading FlowNodes If Not Needed (JENKINS-45585)
    • Improves performance significantly when plugins/operations load many Pipeline builds (weather column, etc) just to check the Result
    • Makes an especially large difference for Performance-Optimized Pipelines with many steps
    • This makes the 'completed' field persistent for Pipeline Runs and will trigger a one-time re-save for legacy builds
    • Back-compatibility Issue: the presence of the 'completed' field will introduce errors about double onLoad calls when downgrading to version 2.17.  This can be fixed (to allow for loading in earlier versions) by searching for all build.xml files containing the following strings and removing those lines:
      • <completed>true</completed>
      • <completed>false</completed>
  • Bugfix: Fix one case where running Pipelines would not reflect an updated Resume Disabled status on the job
  • Part of Bugfix: Error "NullPointerException in SandboxContinuable.run0" after restart in Performance-Optimized Durability Setting (JENKINS-50407)
    • Remainder of bugfix is in Pipeline Groovy Plugin, version 2.47
  • Part of Major Bugfix: Error "NullPointerException in CPS VM thread at WorkflowRun$GraphL.onNewHead" as result of a race condition (JENKINS-49686)
    • The other part of the bugfix is in the Pipeline Groovy Plugin - version 2.47
  • NullPointerException can be thrown due to null triggers list (JENKINS-49170).  Thanks to Unknown User (batmat) for the contribution.
  • Bugfix / Improvement: Users can use Simple Theme Plugin to hide extra pipeline logging, because the 'pipeline-annotated' is now included (JENKINS-41845)
  • Part of Major Bugfix: Failed pipelines resume and won't die even when marked to not resume, and show resume failures  (JENKINS-50199)
    • The other part of the bugfix is in the Pipeline Groovy Plugin - version 2.47
  • Update text: fix use of "slave" rather than "agent" for build computers - thank to Github user acrewdson for the contribution.

2.17 (Jan 22, 2018)

  • Major Feature: Support Durability Settings for a Pipeline (JENKINS-47300)
    • Allows user to greatly reduce IO needs of pipeline and improve performance
    • This plugin consumes the setting and will reduce IO under the right settings
    • Add property & UX for user to configure the Durability Setting
  • Major Feature: Add property and UI for user to mark a Pipeline as do-not-resume-at-restart (JENKINS-33761)
  • Requires Jenkins 2.62

2.16 (Dec 4, 2017)

  • Feature: label ThreadNames with something meaningful (i.e. for copyLogs) for better diagnosability
  • Feature: Add Chinese Translation (thanks LinuxSuRen!)
  • Fix JENKINS-46945 - now follow convention of setting Run duration after fireCompleted triggers evaluate
  • Fix: Add missing ABORT permission to WorkflowJob (JENKINS-43834)
  • Cleanup: Avoid adding PipelineTriggersJobProperty property unless a trigger is defined, and remove redundant Queue task overrides
  • Cleanup: Remove redundant calls in obtaining build Environment (JENKINS-29537)

2.15 (Oct 13, 2017)

  • JENKINS-46934 - Fix hangs due to build rotation
  • JENKINS-46082 - List culprits (SCM committers) responsible for triggering a build and export this to API 
  • JENKINS-45043 - Fix "changes.title" showing up in the view for Pipeline changes.
  • JENKINS-45460 - fix adding triggers after migration from 2.3 or earlier.

2.14.1 (August 2, 2017)

  • Added a FlowCopier for checkouts

2.14 (August 1, 2017)

  • Catch Exceptions thrown upon loading the execution and null the execution, as a defense against JENKINS-44548 

2.13 (Jun 19, 2017)

Requires Jenkins core 2.62+.

  • Japanese translation.

  • Internal code simplifications enabled by newer core dependency.

2.12.2 (August 2, 2017)

  • Added a FlowCopier for checkouts

2.12.1 (Jun 19, 2017)

  • JENKINS-43055 Supporting a new API FlowExecutionListener.

  • Print a message about a build’s authentication, like a freestyle build would.
  • Defend against exceptions thrown by Trigger implementations.

2.12 (May 16, 2017)

Requires Jenkins core 2.60+. (This is expected to be the basis of the next LTS line.)

2.11.2 (August 2, 2017)

  • Added a FlowCopier for checkouts

2.11.1 (Jun 20, 2017)

Same changes as in 2.12.1 but compatible with older versions of Jenkins.

2.11 (May 12, 2017)

  • JENKINS-27299 Support for disabling Pipeline jobs.

  • JENKINS-34716 Support for polling REST endpoint on Pipeline jobs.

  • JENKINS-43396 Include global node properties in environment outside any node block.

  • Minor memory leak when builds are being rapidly created and then deleted.

2.10 (Feb 10, 2017)

  • JENKINS-40255 SCM list for a job now considers the last successful build if the last completed was a failure.
  • JENKINS-33721 Sidepanel option to terminate or kill a build.
  • JENKINS-41276 Fixed initialization of causes for build aborts.
  • API needed for JENKINS-40521.

2.9 (Nov 10, 2016)

  • JENKINS-35098 Work around performance problem in Jenkins 1.x cores.
  • Improved exception reporting from Job.logRotate.

2.8 (Oct 24, 2016)

2.7 (Sep 23, 2016)

  • JENKINS-28222 parallel branch labels were getting dropped after the end of a block inside the branch.
  • JENKINS-30910 Including build parameters as environment variables, which also fixes JENKINS-28447.
  • Log file collection could block system threads under unreproducible conditions, leading to apparent hangs.

2.6 (Aug 26, 2016)

  • JENKINS-37477 Fixed documentation and Snippet Generator for pipelineTriggers from 2.4.
  • Fixing cleanup of serious bugs in build setup.
  • JENKINS-37664 Behave more gracefully in an as-yet-undiagnosed race condition affecting step logs which formerly caused an irrecoverable hang with 100% CPU.

2.5 (Aug 08, 2016)

  • Indicating in the build log when a restart occurred.
  • Generalized fix for JENKINS-34281 which may fix an unreproducible issue possibly involving the stage view, Jenkins restarts, and access control.
  • NullPointerException under unknown conditions, probably following a hard kill.
  • Make JENKINS-29922 integration (simplified properties step syntax) work in Jenkins 1 as well as 2.

2.4 (Jul 28, 2016)

  • JENKINS-34547 Converted concurrency setting to a job property, allowing it to be defined in a multibranch Jenkinsfile via the properties step.
  • JENKINS-34005 Converted triggers to a job property for the same reason. (Note that multibranch projects do not need an SCM trigger since branch indexing automatically triggers builds by default.)
  • Robustness improvement in case an SCM plugin is disabled.

2.3 (Jun 16, 2016)

2.2 (May 20, 2016)

  • JENKINS-34450 Work around a core bug causing deadlocks under some conditions when interrupting builds.
  • When using CloudBees Jenkins Enterprise checkpoints, clear stashes whenever discarding build artifacts.

2.1 (Apr 12, 2016)

  • Programmatic interruptions of a build such as Executor.interrupt(Result) were discarding the build status.

2.0 (Apr 05, 2016)

  • First release under per-plugin versioning scheme. See 1.x changelog for earlier releases.
  • JENKINS-31162 Support New Item categorization in Jenkins 2.x.