আপনি জেনকিনস পাইপলাইনbuild job
থেকে পদক্ষেপটি ব্যবহার করতে পারেন (ন্যূনতম জেনকিন্স প্রয়োজনীয়তা: 2.130)।
build
পদক্ষেপের জন্য এখানে সম্পূর্ণ এপিআই : https://jenkins.io/doc/pipline/steps/pipline-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-pipline/
সমান্তরাল সম্পর্কে আরও তথ্য এখানে: https://jenkins.io/doc/book/pipline/syntax/# সমান্তরাল
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
}
}
}
}