title: Jenkins Groovy: What triggered the build
body: <p>I was thinking of using a Groovy script for my build job in Jenkins because I have some conditions to check for that might need access to Jenkins API.</p>
  
  <p>Is it possible to find out who or what triggered the build from a Groovy script? Either an SCM change, another project or user. I have just begun reading a little about Groovy and the Jenkins API.</p>
  
  <p>I want to check for the following conditions and build accordingly. Some Pseudocode:</p>
  
  <pre><code>def buildTrigger JenkinsAPI.thisBuild.Trigger
  if (buildTrigger == scm) {
     execute build_with_automake
     def new_version = check_git_and_look_up_tag_for_version
     if (new_version) {
        execute git tag new_release_candidate
        publish release_candidate
     }
  } else if (buildTrigger == "Build other projects") {
    execute build_with_automake
  }
  </code></pre>
  
  <p>The project should build on every SCM change, but only tag and publish if version has been increased. It should also build when a build has been triggered by another project.</p>