使用通用webhook插件拉取基于请求的jenkins作业触发器

使用通用webhook插件拉取基于请求的jenkins作业触发器,jenkins,jenkins-pipeline,jenkins-plugins,google-kubernetes-engine,continuous-deployment,Jenkins,Jenkins Pipeline,Jenkins Plugins,Google Kubernetes Engine,Continuous Deployment,我试图触发jenkins管道作业,但只有在拉请求得到批准并合并到CI/CD实现中的特定github分支时 目前,每当我将PR合并到发布时,创建用于在PR合并到主控时触发的jenkins作业也会被触发,而我只希望触发release jenkins作业 奇怪的是,echo env.GIT_BRANCH cmd在主作业中将分支名称显示为MASTER,而release job在我只将PR合并到release时将分支显示为release 尝试过的事情: 在Jenkins中构建功能的分支 当Jenkinsf

我试图触发jenkins管道作业,但只有在拉请求得到批准并合并到CI/CD实现中的特定github分支时

目前,每当我将PR合并到发布时,创建用于在PR合并到主控时触发的jenkins作业也会被触发,而我只希望触发release jenkins作业

奇怪的是,echo env.GIT_BRANCH cmd在主作业中将分支名称显示为MASTER,而release job在我只将PR合并到release时将分支显示为release

尝试过的事情:

  • 在Jenkins中构建功能的分支
  • 当Jenkinsfile中出现条件时(其行为怪异,当一个分支成为目标时,同时触发暂存和生产作业)
  • 环境: 詹金斯。2.176.3,Docker,Jenkins通用webhook触发器

    我确信when条件会起作用,但对我来说不是,以下是我在Jenkinsfile中的部分when条件:

    stage("Step 1: Build Docker"){}
    stage("Step 2: Push to DockerHub"){}
    stage("Step 3: Production Deployment"){
                when {
                    expression { return params.current_status == "closed" && params.merged == true && env.GIT_BRANCH == "origin/master" }
                }
                steps{
                    -----
                    sh 'kubectl apply -f **.yaml'
                }
    }
    
    在我的Jenkins文件中,我正在编写将docker映像部署到kubernetes集群的逻辑,因此我要寻找的就是基于分支准确地触发作业

    关于如何让它工作的任何建议,我在这里遗漏了什么


    注意:我之前问过同样的问题,但由于不清楚,不得不重写。

    解决这个问题的一种方法是检查github/bitbucket/gitlab管道另一端的正确分支,该管道仅在合并正确分支时触发webhook。另一个选项是在管道中检查它,如果(分支!='release')currentBuild.result='ABORTED'您能澄清一下,为什么->currentBuild.result='ABORTED'?分支错误时,这将中止当前构建。据我所知,这是在声明性管道中实现这一点的最佳方法。另一种方法是创建一个只由webhook触发的管道,并过滤掉实际应该启动build+deploy作业的管道