Jenkins 如何从声明性管道中的另一个作业启动作业?

Jenkins 如何从声明性管道中的另一个作业启动作业?,jenkins,jenkins-pipeline,declarative,Jenkins,Jenkins Pipeline,Declarative,假设有两个作业: 微服务存储库的作业 用于端到端测试的作业 在特定情况下,我希望从微服务工作开始端到端测试工作。例如,在引入一个即使通过了单元测试和集成测试的变更之后,它还需要进一步的测试,可以在端到端测试工作中使用 我希望开发人员用一个特定的短语进行提交。为此,我在微服务管道中实现了以下功能: pipeline { ... ... stages { ... } post { success {

假设有两个作业:

  • 微服务存储库的作业
  • 用于端到端测试的作业
  • 在特定情况下,我希望从微服务工作开始端到端测试工作。例如,在引入一个即使通过了单元测试和集成测试的变更之后,它还需要进一步的测试,可以在端到端测试工作中使用

    我希望开发人员用一个特定的短语进行提交。为此,我在微服务管道中实现了以下功能:

    pipeline {
        ...
        ...
        stages {
            ...
        }    
    
    
        post {
            success {
                if (BRANCH_NAME == "develop") {
                    result = sh (script: "git log -1 | grep '.*\\[e2e\\].*'", returnStatus: true) 
                    if (result == 0) {
                        build job: '****', wait: false
                    }
                }
            }
        ...
        ...
        }
    }
    
    这似乎有效,正如我在日志中看到的:

    git日志-1
    grep.[e2e]。
    运行测试[e2e][管道]构建(构建****)
    计划项目:****


    因此,它找到了“[e2e]”,并假定在端到端测试作业中计划了一个构建,但实际上什么也没有发生-没有计划/运行任何作业。

    因为我使用的是多分支作业,所以我必须-当然-还必须指定分支名称。。。哦

    build job: '****/master', wait: false