आप जेनकिंस पाइपलाइन (न्यूनतम जेनकींस आवश्यकता: 2.130) build job
से कदम का उपयोग कर सकते हैं ।
यहाँ build
चरण के लिए पूर्ण एपीआई : https://jenkins.io/doc/pipeline/steps/pipeline-build-epep/
कैसे उपयोग करें 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-pipline/
समानांतर यहाँ पर अधिक जानकारी: 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
}
}
}
}