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

post-build action statuses handling


    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • core

      perform method that return boolean for publisher is deprecated now and AbortException with reason message is a new style.

      In current situation when you have two publishers:
      1) If build SUCCESS (build.getResult()) then do action and FAIL the publisher.
      2) if build SUCCESS - do action
      Because of 1) returned boolean build summary result is set to failed.
      So what status will see 2) publisher?
      If 1) publisher fail the build with 'return false', then second publisher will still see SUCCESS state and do unexpected action
      If 1) throw AbortException, then build result will be set to FAILURE and 2) publisher will see correct fail status.

      The error in this place https://github.com/jenkinsci/jenkins/blob/555e2d593fbb419d2fad7e9cfae5911daf3d30e3/core/src/main/java/hudson/model/AbstractBuild.java#L719-L729
      if branch sets build Result immediately for throwen error and later for boolean.

      Also AbortException shouldn't print stacktraces, issue in ancient code here:

            integer Kanstantsin Shautsou
            integer Kanstantsin Shautsou
            0 Vote for this issue
            4 Start watching this issue