-
Bug
-
Resolution: Fixed
-
Major
-
None
-
Jenkins v2.87
Nodes and Processes v2.17
Durable Task v1.15
Declarative Pipeline v1.2.2
Pipeline v2.5
Jenkins master is running on a windows 10 machine
When I run the following pipeline on a test jenkins instance running on my PC, it always returns successful:
pipeline { agent {label 'master'} stages { stage('Build') { steps { powershell '''\ $LastExitCode = 2 Write-Error "Error" throw "Except" exit 1 ''' } } } }
Here is the console output:
Started by user francis [Pipeline] node Running on Jenkins in C:\Program Files (x86)\Jenkins\workspace\test-pipeline [Pipeline] { [Pipeline] stage [Pipeline] { (Build) [Pipeline] powershell [test-pipeline] Running PowerShell script C:\Program Files (x86)\Jenkins\workspace\test-pipeline@tmp\durable-de77ada9\powershellScript.ps1 : Error At C:\Program Files (x86)\Jenkins\workspace\test-pipeline@tmp\durable-de77ada9\powershellMain.ps1:2 char:1 + & 'C:\Program Files (x86)\Jenkins\workspace\test-pipeline@tmp\durable ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,powershellScript.ps1 C:\Program Files (x86)\Jenkins\workspace\test-pipeline@tmp\durable-de77ada9\powershellMain.ps1 : Except At C:\Program Files (x86)\Jenkins\workspace\test-pipeline@tmp\durable-de77ada9\powershellWrapper.ps1:1 char:1 + & "C:\Program Files (x86)\Jenkins\workspace\test-pipeline@tmp\durable ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,powershellMain.ps1 [Pipeline] } [Pipeline] // stage [Pipeline] } [Pipeline] // node [Pipeline] End of Pipeline Finished: SUCCESS
This blog post states that any of these actions in powershell should trigger a failed build (throw an exception, return exit code != 0, write to error stream, set lastexitcode !=0). In fact, none of them are triggering it, I have tried each individually.
I tried this on our production Jenkins machine, and it did trigger a failed build (expected behavior). This machine is running:
Jenkins v2.60.2
Declarative Pipeline v1.1.9
Nodes and Processes v2.13
Durable Task v1.14
Machine is a Linux Slave, and the pipeline got executed on a Windows 7 slave. Therefore, I don't know whether this bug is caused by the newer version on my test setup, by the fact that it gets executed on the master, or by the OS differences.
I am marking this as major because a pipeline falsely marked as Successful in production could be a major problem.