jenkinsgroovyjenkins-pipeline

Jenkins: How can I know if an automatic process or a user has triggered a build?


Is there an environment variable in Jenkins which tells me if the build has been ran manually or automatically triggered by polling?

My pipeline works like a charm if automatically triggered, but if manually ran... it always fails, so I think I'm going to edit the pipeline to check how the build has been triggered.


Solution

  • Unfortunately variable env.BUILD_CAUSE is not set in Pipeline builds. For pipeline jobs see following example

    if ( currentBuild.rawBuild.getCauses()[0].toString().contains('UserIdCause') ){
        // do steps for manual trigger here
    }
    

    Other possible causes to compare can be found here.