How to differentiate build triggers in Jenkins Pipeline

后端 未结 7 1646
挽巷
挽巷 2020-12-03 10:23

I\'m hoping to add a conditional stage to my Jenkinsfile that runs depending on how the build was triggered. Currently we are set up such that builds are either triggered by

7条回答
  •  鱼传尺愫
    2020-12-03 11:03

    There was a similar requirement, where user detail who triggered the build should be there in success / failure notification. The job was already had time based triggered, hence could not use wrap([$class: 'BuildUser']) directly.

    I used below step, which print username if the job is triggered manually or timer triggered. So, I used this:

    pipeline {
        agent any
        stages {
            stage('Test') {
                steps {
                    script{ 
                        env.buildCauses = currentBuild.rawBuild.getCauses()
                        if (buildCauses.contains("hudson.triggers.TimerTrigger")){
                            env.builduser = "TimerTrigger"
                        } else {
                            wrap([$class: 'BuildUser']) {
                                env.builduser = "${BUILD_USER}"
                            }
                        }
                    }
                    echo "Initiated by: ${env.builduser}"
                }
            }
        }   
    }
    

提交回复
热议问题