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

Timestamper does not work properly with Windows style line endings

    XMLWordPrintable

Details

    Description

      When using timestamper with either PowerShell or Windows Batch pipeline steps the timestamps do not get added to the console output.  I suspect this is because in these steps the console log has Windows style line endings of CRLF instead of unix style.

      Example repro:

      node("Windows") {
          timestamps {
              bat """
              @echo off
              echo These
              echo lines
              echo should
              echo have
              echo timestamps
              """
              powershell """
              Write-Host "These"
              Write-Host "lines"
              Write-Host "should"
              Write-Host "have"
              Write-Host "timestamps"
              """
          }
      }

       
      Result:

      [Pipeline] { (hide)
      [Pipeline] timestamps (hide)
      [Pipeline] { (hide)
      [Pipeline] bat (hide)
      2018-11-13 10:08:00 [TestTimestamper] Running batch script
      These
      lines
      should
      have
      timestamps
      [Pipeline] powershell (hide)
      2018-11-13 10:08:00 [TestTimestamper] Running PowerShell script
      These
      lines
      should
      have
      timestamps
      [Pipeline] }
      [Pipeline] // timestamps
      [Pipeline] }
      [Pipeline] // node
      [Pipeline] End of Pipeline

       

      Attachments

        Activity

          gabloe Gabriel Loewen created issue -
          gabloe Gabriel Loewen made changes -
          Field Original Value New Value
          Description When using timestamper with either PowerShell or Windows Batch pipeline steps the timestamps do not get added to the console output.  I suspect this is because in these steps the console log has Windows style line endings of CRLF instead of unix style.

          Example repro:

           
          {code:java}
          node("Windows") {
              timestamps {
                  bat """
                  @echo off
                  echo These
                  echo lines
                  echo should
                  echo have
                  echo timestamps
                  """
                  powershell """
                  Write-Host "These"
                  Write-Host "lines"
                  Write-Host "should"
                  Write-Host "have"
                  Write-Host "timestamps"
                  """
              }
          }{code}
           
          Result:

           
          {noformat}
          [Pipeline] { (hide)
          [Pipeline] timestamps (hide)
          [Pipeline] { (hide)
          [Pipeline] bat (hide)
          2018-11-13 10:08:00 [TestTimestamper] Running batch script
          These
          lines
          should
          have
          timestamps
          [Pipeline] powershell (hide)
          2018-11-13 10:08:00 [TestTimestamper] Running PowerShell script
          These
          lines
          should
          have
          timestamps
          [Pipeline] }
          [Pipeline] // timestamps
          [Pipeline] }
          [Pipeline] // node
          [Pipeline] End of Pipeline{noformat}
           
          When using timestamper with either PowerShell or Windows Batch pipeline steps the timestamps do not get added to the console output.  I suspect this is because in these steps the console log has Windows style line endings of CRLF instead of unix style.

          Example repro:
          {code:java}
          node("Windows") {
              timestamps {
                  bat """
                  @echo off
                  echo These
                  echo lines
                  echo should
                  echo have
                  echo timestamps
                  """
                  powershell """
                  Write-Host "These"
                  Write-Host "lines"
                  Write-Host "should"
                  Write-Host "have"
                  Write-Host "timestamps"
                  """
              }
          }{code}
           
           Result:
          {noformat}
          [Pipeline] { (hide)
          [Pipeline] timestamps (hide)
          [Pipeline] { (hide)
          [Pipeline] bat (hide)
          2018-11-13 10:08:00 [TestTimestamper] Running batch script
          These
          lines
          should
          have
          timestamps
          [Pipeline] powershell (hide)
          2018-11-13 10:08:00 [TestTimestamper] Running PowerShell script
          These
          lines
          should
          have
          timestamps
          [Pipeline] }
          [Pipeline] // timestamps
          [Pipeline] }
          [Pipeline] // node
          [Pipeline] End of Pipeline{noformat}
           
          gabloe Gabriel Loewen made changes -
          Priority Minor [ 4 ] Major [ 3 ]
          gabloe Gabriel Loewen made changes -
          Resolution Cannot Reproduce [ 5 ]
          Status Open [ 1 ] Resolved [ 5 ]

          People

            stevengbrown Steven G Brown
            gabloe Gabriel Loewen
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: