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

recordIssues never fails stage

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Major Major
    • warnings-ng-plugin
    • None
    • jenkins 2.165
      warnings-ng 3.0.3

      Running recordIssues never fails stage even output tells it fails.

      This is the stage (not parallel!) snippet from my pipeline:

              stage('Analyze test results') {
                  steps {
                      unstash 'pylint.log'
                      recordIssues healthy: 1, minimumSeverity: 'NORMAL', unhealthy: 9, qualityGates: [[threshold: 1, type: 'TOTAL_NORMAL', unstable: true], [threshold: 1, type: 'TOTAL_HIGH', unstable: false], [threshold: 1, type: 'TOTAL_ERROR', unstable: false]], tools: [pyLint(pattern: 'pylint/pylint.log')]
                  }
                  post {
                      failure {
                          error('Abort because of pylint warnings')
                      }
                  }
              }
      

      ... and this is the output:

      [Pipeline] stage
      [Pipeline] { (Analyze test results)
      [Pipeline] unstash
      [Pipeline] recordIssues
      using credential itsec_git-jenkins
      [PyLint] Searching for all files in '/var/jenkins_home/workspace/somenamesystem_somename-core_test@4' that match the pattern 'pylint/pylint.log'
      [PyLint] -> found 1 file
      [PyLint] Successfully parsed file /var/jenkins_home/workspace/somenamesystem_somename-core_test@4/pylint/pylint.log
      [PyLint] -> found 3122 issues (skipped 81 duplicates)
       > git rev-parse HEAD^{commit} # timeout=10
      [PyLint] Post processing issues on 'Master' with source code encoding 'UTF-8'
      [PyLint] Resolving absolute file names for all issues in workspace '/var/jenkins_home/workspace/somenamesystem_somename-core_test@4'
      [PyLint] -> 91 resolved, 0 unresolved, 0 already resolved
      [PyLint] Copying affected files to Jenkins' build folder '/var/jenkins_home/jobs/somenamesystem/jobs/somename-core/branches/test/builds/61/files-with-issues'
      [PyLint] -> 91 copied, 0 not in workspace, 0 not-found, 0 with I/O error
      [PyLint] Resolving module names from module definitions (build.xml, pom.xml, or Manifest.mf files)
      [PyLint] -> resolved module names for 3122 issues
      [PyLint] Resolving package names (or namespaces) by parsing the affected files
      [PyLint] -> resolved package names of 91 affected files
      [PyLint] No filter has been set, publishing all 3122 issues
      [PyLint] Creating fingerprints for all affected code blocks to track issues over different builds
      [PyLint] -> created fingerprints for 3122 issues
      [PyLint] Invoking Git blamer to create author and commit information for all affected files
      [PyLint] GIT_COMMIT env = 'HEAD'
      [PyLint] Git working tree = '/var/jenkins_home/workspace/somenamesystem_somename-core_test@4'
      [PyLint] Git commit ID = '9753edb7b0dd8f8741b92cd9c60951d44e949b7c'
      [PyLint] Job workspace = '/var/jenkins_home/workspace/somenamesystem_somename-core_test@4'
      [PyLint] Created blame requests for 91 files - invoking Git blame on agent for each of the requests
      [PyLint] -> blamed authors of issues in 91 files
      [PyLint] Attaching ResultAction with ID 'pylint' to run 'somenamesystem/somename-core/test #61'.
      [PyLint] Using reference build 'somenamesystem/somename-core/test #60' to compute new, fixed, and outstanding issues
      [PyLint] Issues delta (vs. reference build): outstanding: 0, new: 3122, fixed: 0
      [PyLint] Evaluating quality gates
      [PyLint] -> PASSED - Total number of warnings (severity normal): 0 - Quality QualityGate: 1
      [PyLint] -> FAILED - Total number of warnings (severity high): 1 - Quality QualityGate: 1
      [PyLint] -> PASSED - Total number of errors: 0 - Quality QualityGate: 1
      [PyLint] -> Some quality gates have been missed: overall result is FAILED
      [PyLint] Enabling health report (Healthy=1, Unhealthy=9, Minimum Severity=NORMAL)
      [PyLint] Created analysis result for 3122 issues (found 3122 new issues, fixed 0 issues)
      [Pipeline] }
      [Pipeline] // stage
      

      Replacing the steps of this stage with the following code fails correctly:

              stage('Analyze test results') {
                  steps {
                      sh 'exit 1'
                  }
                  post {
                      failure {
                          error('Abort because of pylint warnings')
                      }
                  }
              }
      

      When I comment out the unstash (so the file pylint/pylint.log is unavailable), the output says it will fail because file is missing (I activated the flag in the settings for failing if file not available) - but stage also doesn't fail.

            drulli Ulli Hafner
            baaazen Mirko Hansen
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: