를 호출하는 방법 jenkins 파이프라인에서 다른 jenkins 파이프라인 B

나는 두 Jenkins,파이프,보's 말하는 파이프와 파이프라인-B. 내가 원하는 호출하는 파이프라인에서 파이프 라인-B. 이렇게 하려면 어떻게 해야 합니까?

(파이프라인-A 는 하위 집합의 파이프라인-B. 파이프라인-A 에 대한 책임을 일상적인 조건에서 다시 사용할 수 있는 파이프라인-B)

내가 설치되어 있 Jenkins2.41 내 컴퓨터에.

질문에 대한 의견 (1)

작은 불분명하려는 경우 호출하는 또 다른 스크립트 또는 파이프라인 작업,그래서 나는 모두 대답:

파이프라인 script "드"단계를 실행하는 다른 파이프라인에 스크립트입니다. 모두 있는 경우 스크립트와 동일한 디렉토리에 로드할 수 있습니다 그것은 다음과 같다:

def pipelineA = load "pipeline_A.groovy"
pipelineA.someMethod()

다른 스크립트(pipeline_a.그루비):

def someMethod() {
    //do something
}

return this

파이프라인 작업을

당신은 이야기에 대해 실행하는 또 다른 파이프라인 작업 "를 구축 작업이"단계로 구성할 수 있습니다:

build job: '', propagate: true, wait: true

파:오류를 전파

대기:완료할 때까지 기다리십시오

우 파라미터에서 작업을 추가할 수 있습니다 그들에게 다음과 같다:

build job: '', parameters: [[$class: 'StringParameterValue', name: 'param1', value: 'test_param']]
해설 (11)
해결책

다음과 같은 솔루션에 대한 저:

pipeline {
    agent
    {
        node {
                label 'master'
                customWorkspace "${env.JobPath}"
              }
    }

    stages 
    {
        stage('Start') {
            steps {
                sh 'ls'
            }
        }

        stage ('Invoke_pipeline') {
            steps {
                build job: 'pipeline1', parameters: [
                string(name: 'param1', value: "value1")
                ]
            }
        }

        stage('End') {
            steps {
                sh 'ls'
            }
        }
    }
}
해설 (5)

를 추가하이 무엇@마티아스-snellingen 말했다. 여러 개 있는 경우 기능해야에서의 함수 호출되는 메인 파이프라인에 스크립트입니다. 예를 들어:

def someMethod() {
   helperMethod1() 
   helperMethod2()
} 
return this 

def helperMethod1(){ 
   //do stuff
} 

def helperMethod2(){
  //do stuff
}

someMethod()은 것 하나라에서 주요 파이프라인에 스크립트

해설 (0)

또 다른 옵션은 패키지를 만들고,그것을 로드하고 그것을 실행 패키지에서.

package name.of.package
import groovy.json.*

def myFunc(var1) {
return result
}

보다 소비

@Library('name_of_repo')
import name.of.package.* 
utils = new name_of_pipeline()
// here you can invoke
utils.myFunc(var)

그것을 희망하는 데 도움이

해설 (0)

으로 언급@마티아스 Snellingen 및@Cé선 Aussourd 의 경우,시작하 multibranch 작업을 지정하는 지점을 구축을 다음과 같다:

stage ('Invoke_pipeline') {
    steps {
        build job: 'pipeline1/master', parameters: [
        string(name: 'param1', value: "value1")
        ]
    }
}

내 경우에는 그것이 문제를 해결했다.

해설 (1)