-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
-
1.36
A build will not fail when a powershell script encounters an error "MissingMandatoryParameter" or "CommandNotFoundException".
I would expect an error code other than 0, or, for the script to fail.
Here are some examples:
powershell "gobbledygook"
Results in something similar to:
[Pipeline] echo Running powershell command: gobbledygook [Pipeline] powershell powershell.exe : gobbledygook : The term 'gobbledygook' is not recognized as the name of a cmdlet, function, script file, or operable At C:\jenkins_workspace\Jenkins Playground\WebAppTest - Deploy from Git branch@tmp\durable-25a0caf8\powershellWrapper.ps1:3 char:1 + & powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -Comm ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (gobbledygook : ...e, or operable :String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At C:\jenkins_workspace\Jenkins Playground\WebAppTest - Deploy from Git branch@tmp\durable-25a0caf8\powershellScript.ps1:3 char:5 + gobbledygook + ~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (gobbledygook:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException [Pipeline] echo Powershell exit status: 0
and
powershell "buildVS 'Release' -nuget $true"
Results in something similar to:
[Pipeline] echo Running powershell command: buildVS 'Release' -nuget $true [Pipeline] powershell powershell.exe : buildVS : Cannot process command because of one or more missing mandatory parameters: config. At C:\jenkins_workspace\Jenkins Playground\WebAppTest - Deploy from Git branch@tmp\durable-9137f721\powershellWrapper.ps1:3 char:1 + & powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -Comm ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (buildVS : Canno...meters: config.:String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError At C:\jenkins_workspace\Jenkins Playground\WebAppTest - Deploy from Git branch@tmp\durable-9137f721\powershellScript.ps1:3 char:5 + buildVS 'Release' -nuget $true + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [buildVS], ParameterBindingException + FullyQualifiedErrorId : MissingMandatoryParameter,buildVS [Pipeline] echo Powershell exit status: 0
According to this answer on SO, the script should be exiting with an exit code of 1 when the -NonInteractive flag is used. At least in the case of MissingMandatoryParameter.