Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-61866

Pipeline fails to detect failed powershell step

    Details

    • Similar Issues:

      Description

      Consider following scripted pipeline:

       node ('windows') {
          stage ("stage 1") {
              powershell '''
                  & C:\\Temp\\test.ps1
              '''
          }
          
          stage ("stage 2") {
              echo "stage 2"
          }
      }

      Contents of the test.ps1 is following:

      param ($param1)
      
      $ErrorActionPreference = "Stop"
      Set-StrictMode -Version Latest
      
      Write-Host $undefVar

      The script is specifically designed to fail on trying to access undefined variable. This scenario is working correctly, Jenkins detects that PowerShell script returned something other than 0 exit code and fails pipeline execution.

      However! If the script to be changed this way (only line 1 has changed):

      param ([Parameter(Mandatory=$false)] $param1)
      
      $ErrorActionPreference = "Stop"
      Set-StrictMode -Version Latest
      
      Write-Host $undefVar

      Then the script fails exactly the same way, but Jenkins fails to detect this failure and proceeds to execute stage 2.

      Invoking both versions of the PowerShell script manually shows that in both cases powershell process exit code is 1. I fail to understand how adding parameter attribute to PowerShell script affects Jenkins ability to detect script outcome.

        Attachments

          Activity

          Hide
          vodalus Sergey Dedik added a comment -

          The behavior is also reproducible on fresh Jenkins 2.222.3 installation with only Pipeline plugin (and dependencies) being installed.

          Show
          vodalus Sergey Dedik added a comment - The behavior is also reproducible on fresh Jenkins 2.222.3 installation with only Pipeline plugin (and dependencies) being installed.

            People

            • Assignee:
              Unassigned
              Reporter:
              vodalus Sergey Dedik
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: