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

Pipeline: Using timestamps() breaks getLogMatcher()

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Minor Minor
    • Jenkins 2.60.1 with all plugins up to date.on 19th of July 2017

      The following code works without timestamps() and fails with. getLogMatcher() apparently

      fails to get the real log with timestamps() active.

       

      @NonCPS
      def setBuildName(manager, currentBuild) {
              def m = manager.getLogMatcher('stage (.*)')
              if (m?.matches()) {
                      currentBuild.displayName = m.group(1)
              } else {
                      currentBuild.displayName = 'NO MATCH'
              }
      }
      
      pipeline {
              agent {
                      label "master"
              }
              options {
                      // Just here for easy comment/uncomment of timestamp()    
                      buildDiscarder(logRotator(numToKeepStr: '5'))
                      // timestamps()
              }
      
              stages {
                      stage('checkout') {
                              steps {
                                      sh "echo 'stage checkout"
                              }
                      }
                      
                      stage("preparation") {
                              steps {
                                      sh "echo 'stage preparation'"
                              }
                      }
      
                      stage("install") {
                              steps {
                                      script {
                                              setBuildName(manager, currentBuild)
                                      }
                              }
                      }
              }
      }
      

       

          [JENKINS-45683] Pipeline: Using timestamps() breaks getLogMatcher()

          Jesse Glick added a comment -

          Please fix formatting of your sample program, and specify what “fails” means.

          Jesse Glick added a comment - Please fix formatting of your sample program, and specify what “fails” means.

          Fixed code. Failed means the LogMatcher doesn't match. With timestamp() the LogMatcher apparently sees a different log output.

          Michael jansen added a comment - Fixed code. Failed means the LogMatcher doesn't match. With timestamp() the LogMatcher apparently sees a different log output.

          Jesse Glick added a comment -

          Right…because the lines are prefixed by timestamps.

          Jesse Glick added a comment - Right…because the lines are prefixed by timestamps.

          Jesse Glick added a comment -

          Would presumably also affect freestyle builds using the system property to keep timestamp annotations in the main build log, as opposed to a separate file.

           

          Jesse Glick added a comment - Would presumably also affect freestyle builds using the system property to keep timestamp annotations in the main build log, as opposed to a separate file.  

            Unassigned Unassigned
            jansenm Michael jansen
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: