在 Jenkinsfile 中,如何在同一个作业中运行另一个 Jenkinsfile?

时间:2021-01-06 09:53:37

标签: jenkins jenkins-pipeline jenkins-plugins jenkins-groovy

enter image description here

这个 repo 在不同的路径中有三个 Jenkinsfile。我想在根目录的Jenkinsfile中的不同目录中调用Jenkinsfiles,并在同一个Job中执行它们。有什么办法可以做到这一点吗?代码是根目录下的Jenkinsfile。

pipeline{
    agent { label "x86_64" }
    stages {
        stage('Build') {
            steps {
                dir('python3/python3.6.8')
                    script {
                        def Changes6 = sh(returnStdout: true, script: "git diff --name-only ${env.GIT_COMMIT} ${GIT_PREVIOUS_SUCCESSFUL_COMMIT} | grep servicelayer | wc -l").trim()
                        if (Changes6=="0") {
                            //TODO: How to trigger the python3/python3.6.8/centos_7.7_1908/build/Jenkinsfile and run in this Job?
                        }
                    }
                dir('python3/python3.7.9') {
                    script {
                        def Changes7 = sh(returnStdout: true, script: "git diff --name-only ${env.GIT_COMMIT} ${GIT_PREVIOUS_SUCCESSFUL_COMMIT} | grep servicelayer | wc -l").trim()
                        if (Changes7=="0") {
                            //TODO: How to trigger the python3/python3.7.9/centos_7.7_1908/build/Jenkinsfile and run in this Job?
                        }
                    }
                }                    
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您可以为第二个 jenkinsfile 创建第二个作业并从第一个管道触发它。

build(job: 'foo', parameters: [password('parameter-name', 'secret-value')])