I have tried reading the build cause as suggested in this example
https://github.com/jenkinsci/pipeline-examples/tree/master/pipeline-examples/get-build-cause

Accessing the build cause outside of a node causes the pipeline to fail 
right after entering the first stage and without an error or exception.
void main(def args) {
  def causes = currentBuild.rawBuild.getCauses()
  stage 'Checkout'
  node {
    scm checkout
  }
}


Accessing the build cause within a node throws exception 
java.io.NotSerializableException: 
hudson.model.Cause$UserIdCause
void main(def args) {
  stage 'Checkout'
  node {
    def causes = currentBuild.rawBuild.getCauses()
    scm checkout
  }
}


So I put it within a @NonCPS method, but it still fails the same way as 
before.
void main(def args) {
stage 'Checkout'
node {
  def cause = getLastBuildCause()
scm checkout
}
}

@NonCPS
def getLastBuildCause() {
    def causes = currentBuild.rawBuild.getCauses()
    return causes.last()
}

 
I need to find out who or what caused the build, to find out if it is an 
upstream project. Unless there is some other access methods for this?

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/14e02411-a669-4225-a405-9c2299894aea%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to