- For newer versions, see GitHub Releases
Release date: 2021-05-04
- Fix: PowerShell command invocation errors will now fail at the pipeline step (JENKINS-59529)
- Add an option to load the PowerShell profile (PR 130)
Release date: 2020-09-02
- Fix: Convert
FileMonitoringTask$FileMonitoringController$1
to a named class to avoid log warnings related to serializing anonymous classes (JENKINS-55145) - Internal: Fix CI build on Windows (PR 125)
Release date: 2020-03-10
- Internal: Clean up deprecated code and unused imports (PR-109)
- Internal: Remove utility function for tempDir and use implementation from core instead (PR-110)
- Internal: Upgrade parent pom to 3.54 (PR-119)
- Fix: Explicitly close
ProcessPipeInputStream
to prevent agent-side OOM (JENKINS-60960) - Internal: Make
generate-binaries
script return error. Refactor unit tests to support infra changes and to skip binary tests when binary is not generated (PR-121)
Release date: 2019-10-29
- Disable binary wrapper caching when there are inadequate permissions to access the cache dir (namely containerized instances). (JENKINS-59903)
- Do not use binary wrapper on non-x86 and FreeBSD architectures (JENKINS-59907)
Release date: 2019-10-28
WARNING: The bugs introduced in 1.31 are still present ((JENKINS-59903, JENKINS-59907)
- Migrate changelog from wiki to github, add README (PR #113)
- Disable binary wrapper (introduced in 1.31) by default.
- To enable binary wrapper, pass the system property
org.jenkinsci.plugins.durabletask.BourneShellScript.FORCE_BINARY_WRAPPER=true
to the Java command line used to start Jenkins.
- To enable binary wrapper, pass the system property
Release date: 2019-10-22
WARNING: This version (1.31) introduced bugs where scripts will not be able to launch on non-x86 platforms and container-based agents that do not have access to the agent node's root directory.
NOTE: To revert to previous release behavior, pass the system property
org.jenkinsci.plugins.durabletask.BourneShellScript.FORCE_SHELL_WRAPPER=true
to the Java command line used to start Jenkins.
- Update ssh-slaves (PR #100)
- Do not fail tests when run on a machine without Docker installed. (PR #101)
- Improve watcher logging (PR #102)
- Refactor UNIX unit tests for greater test coverage (PR #103)
- Allow setting pwsh as Powershell executable (PR #112)
- Bugfix: Use setsid instead of nohup (JENKINS-25503)
- For *NIX systems only, the shell wrapper has been replaced with a pre-compiled golang binary.
- The binary launches the script under a new session to better survive unexpected Jenkins terminations.
- Just like how the shell wrapper executes in the background (since 1.30), the script launcher is a daemonized process. The means that there is an expectation of orphaned-child cleanup (i.e. zombie-reaping) within the underlying environment.
- The binary itself is ~2.5MB per binary. There are 4 pre-compiled binaries (32 and 64bit versions for UNIX and DARWIN).
- The memory footprint is ~800KB heavier than the shell wrapper.
- The two shell processes (610-640KB) and single sleep process (548KB) are replaced by a single process (~2560KB)
Release date: 2019-07-05
- Bugfix: Run the wrapper process for shell scripts in the background. (JENKINS-58290). This means that when the script exits, the wrapper process will be orphaned. In most cases, the orphaned process is cleaned up by the underlying OS (ie zombie-reaping). Special flags must be used to enable zombie-reaping in docker containers (--init) or kubernetes pods (shared process namespaces).
- Bugfix: Use
sh
to run shell scripts rather than attempting to use the absolute path to the default shell from the master on agents. (PR #95) - Bugfix: Make PowerShell exit codes propagate correctly. Fixes a regression from version 1.23 (JENKINS-52884)
Release date: 2019-01-31
- Enhancement: Add support for z/OS Unix System Services to the
sh
step. (JENKINS-37341)
Release date: 2018-11-14
- Bugfix: Do not rely on a shebang line to select the interpreter
for
sh
scripts. This means that Pipelines can now use relative names for interpreters accessible from thePATH
environment variable. (JENKINS-50902)
Release date: 2018-11-01
- Do not print the working directory or the type of script being run when a durable task starts. (PR #83)
- Internal: Shut down thread pools when Jenkins shuts down. Should only affect other plugins using this plugin in their tests.
Release date: 2018-09-25
- Bugfix: Increase the default heartbeat interval used to detect dead processes from 15 seconds to 5 minutes (JENKINS-48300)
- Developer: Define API for pushing durable task logs from build agents directly instead of having the Jenkins master pull logs from build agents (JENKINS-52165)
Release date: 2018-08-08
- Major bugfix: Fix regressions in 1.23 and 1.24 that caused build
failures when running
sh
steps in minimal environments such as Alpine and Cygwin (JENKINS-52881)
Release date: 2018-08-07
- (Warning: Fix is incomplete. Full fix is in version 1.25) Major bugfix: Fix regression in 1.23 that caused build failures on Alpine-based build agents (JENKINS-52847)
- Developer: Define API for gathering command output in a local encoding (JEP-206)
Release date: 2018-07-31
- Major bugfix: properly count log content sent to avoid endlessly-repeating logs (JENKINS-37575)
- Bugfix: Ensure that the logfile-touching process exits when the wrapper script running the durable task dies (JENKINS-50892)
- Fix/Enhancement: Simplify Powershell execution and make it more consistent (JENKINS-50840)
- Admin: support incrementals
Release date: 2018-03-13
- Bugfix: Fix issues with Powershell error handling (JENKINS-50029)
Release date: 2018-03-08
- Bugfix: Resolves regression with Batch steps "hanging" on some
Windows build agents
(JENKINS-50025)
introduced by 1.19
- Fix for existing builds suffering the issue: go into the control directory in the workspace and run 'move jenkins-result.txt.tmp jenkins-result.txt' - the batch step will complete normally
Release date: 2018-03-07
- Bugfix: Prevent PowerShell stdout pollution when using returnStdout (JENKINS-49754)
Release date: 2018-03-07
- Bugfix: Fix bogus DurableTask failures with "exit status code -1" due to non-atomic write of exit status code from processes (JENKINS-25519)
Release date: 2018-02-16
- Major Bug Fixes to PowerShell step:
- Incorrect exit codes (JENKINS-46876)
- Hanging (JENKINS-46508)
- Does not output UTF-8 byte order mark (JENKINS-46496)
- Does not show live output as of version 1.15 (JENKINS-48057)
- Step always returns success (JENKINS-47797)
- Add passing of TaskListener API (JENKINS-48300)
- Test fixes
Release date: 2017-11-21
- Version 1.16 accidentally declared a Java dependency of 8+, despite being otherwise compatible with Jenkins 2.7.x+ which run on Java 7. Reverted to 7+.
- Internal: improved resilience of Docker-based test suites.
Release date: 2017-11-14
WARNING: This version (1.16) temporarily introduced a dependency on Java 8 which was reverted to Java 7 with version 1.17
- JENKINS-47791: Using a new system for determining
whether
sh
step processes are still alive, which should solve various robustness issues. - JENKINS-46496: Fixed BOM issue with the
powershell
step, perhaps
Release date: 2017-10-13
- Apply a timeout to checking when processes are started, so that we can't hang indefinitely
Release date: 2017-06-15
- JENKINS-34581 Powershell support.
- JENKINS-43639 File descriptor leak.
Release date: 2017-01-18
- JENKINS-40734
Environment variable values containing
$
were not correctly passed to subprocesses. - JENKINS-40225
Replace backslashes when on Cygwin to allow
sh
to be used.
WARNING: Users setting node (or global) environment variables like
PATH=/something:$PATH
will see Pipelinesh
failures with this update unless you also update the Pipeline Nodes and Processes Plugin to 2.9 or later (JENKINS-41339). Anyway you are advised to use the syntaxPATH+ANYKEY=/something
, as documented in inline help.
Release date: 2016-07-28
- Infrastructure for JENKINS-26133.
Release date: 2016-06-29
- Infrastructure for JENKINS-31842.
Release date: 2016-05-19
- JENKINS-34150
bat
hangs under some conditions.
Release date: 2016-03-24
- JENKINS-32701
Handle percent signs in the working directory for batch scripts, for
example due to a Pipeline branch project based on a Git branch with
a
/
in its name.
Release date: 2016-03-03
- JENKINS-27152 Store control directory outside of the workspace.
- JENKINS-28400 Better diagnostics when wrapper shell script fails to start.
- JENKINS-25678 Refinement of fix in 1.4.
Release date: 2016-01-19
- JENKINS-32264 Linux-only process liveness check broke usage on FreeBSD.
Release date: 2015-12-03
- JENKINS-27152 Not a fix, but use a more predictable control directory name.
- JENKINS-27419
Handle batch scripts that
exit
without/b
.
Release date: 2015-04-08
- Do not kill a one-shot agent merely because a flyweight task happened to run on it (rather than on master as usual). Works around a bug in the Multibranch API plugin.
Release date: 2015-05-04
- Requires Jenkins 1.565.3+.
- Richer API for launching and stopping processes.
Release date: 2015-03-06
- JENKINS-25678 Space-in-path bug affecting Windows builds.
Release date: 2015-02-02
- Continuing to try to fix deadlocks.
Release date: 2015-01-13
- JENKINS-26380 Occasional deadlocks when running against Jenkins 1.592+.
Release date: 2014-12-05
- JENKINS-25848 Failure to run shell tasks on some Mac OS X installations.
Release date: 2014-11-25
- JENKINS-25727 Race condition causing spurious -1 exit codes, especially for short-lived shell scripts.
- Print a warning when asked to run an empty shell script.
- Avoid allocating a useless thread on the agent while running a task.
Release date: 2014-10-10
- JENKINS-25727 Better reliability of liveness checker when short-lived scripts are being run. (Amended in 1.0.)
Release date: 2014-10-08
- JENKINS-22249 Detect if the wrapper shell script is dead, for example because the machine was rebooted.
- Efficiency improvements in log copying.
Release date: 2014-09-24
- New APIs
ContinuableExecutable
andOnceRetentionStrategy
. - Moved
ContinuedTask
into a subpackage.
Release date: 2014-08-27
- New API: https://trello.com/c/JKJFUWXo/33-prioritizedtask
- Better error handling.
- JENKINS-23027 Print nicer output when running on newer versions of Jenkins.
Release date: 2014-07-22
- Supporting
java.io.Serializable
.
Release date: 2014-05-29
- JENKINS-22248 Allow multiple scripts to run in the same workspace concurrently.
- Allow a “shell” script to override the interpreter.
- Use the default configured shell.
- Start the shell with
-xe
(echo commands, fail on error).
Release date: 2014-03-18
- Initial release.