Jenkins Pipeline 의 build job
단계를 사용할 수 있습니다 (최소 Jenkins 요구 사항 : 2.130).
build
단계에 대한 전체 API는 다음과 같습니다 . https://jenkins.io/doc/pipeline/steps/pipeline-build-step/
사용 방법 build
:
job
: 빌드 할 다운 스트림 작업의 이름입니다. 다른 파이프 라인 작업 일 수도 있지만 일반적으로 자유형이나 다른 프로젝트 일 수도 있습니다.
- 작업 이이 업스트림 파이프 라인 작업 과 동일한 폴더 에 있으면 간단한 이름을 사용하십시오 .
- 대신 사용할 수있는 상대 경로 등을
../sister-folder/downstream
- 또는 다음 과 같은 절대 경로를 사용할 수 있습니다
/top-level-folder/nested-folder/downstream
브랜치를 매개 변수로 사용하여 다른 작업 트리거
우리 회사에는 많은 지점에 "/"가 포함되어 있습니다. "/"의 인스턴스를 "% 2F"로 바꾸어야합니다 (작업 URL에 표시됨).
이 예에서는 상대 경로를 사용하고 있습니다
stage('Trigger Branch Build') {
steps {
script {
echo "Triggering job for branch ${env.BRANCH_NAME}"
BRANCH_TO_TAG=env.BRANCH_NAME.replace("/","%2F")
build job: "../my-relative-job/${BRANCH_TO_TAG}", wait: false
}
}
}
빌드 번호를 매개 변수로 사용하여 다른 작업 트리거
build job: 'your-job-name',
parameters: [
string(name: 'passed_build_number_param', value: String.valueOf(BUILD_NUMBER)),
string(name: 'complex_param', value: 'prefix-' + String.valueOf(BUILD_NUMBER))
]
많은 작업을 병렬로 트리거
출처 : https://jenkins.io/blog/2017/01/19/converting-conditional-to-pipeline/
Parallel에 대한 자세한 정보는 https://jenkins.io/doc/book/pipeline/syntax/#parallel
stage ('Trigger Builds In Parallel') {
steps {
// Freestyle build trigger calls a list of jobs
// Pipeline build() step only calls one job
// To run all three jobs in parallel, we use "parallel" step
// https://jenkins.io/doc/pipeline/examples/#jobs-in-parallel
parallel (
linux: {
build job: 'full-build-linux', parameters: [string(name: 'GIT_BRANCH_NAME', value: env.BRANCH_NAME)]
},
mac: {
build job: 'full-build-mac', parameters: [string(name: 'GIT_BRANCH_NAME', value: env.BRANCH_NAME)]
},
windows: {
build job: 'full-build-windows', parameters: [string(name: 'GIT_BRANCH_NAME', value: env.BRANCH_NAME)]
},
failFast: false)
}
}
또는 대안으로 :
stage('Build A and B') {
failFast true
parallel {
stage('Build A') {
steps {
build job: "/project/A/${env.BRANCH}", wait: true
}
}
stage('Build B') {
steps {
build job: "/project/B/${env.BRANCH}", wait: true
}
}
}
}