Jenkins হল একটি ওপেন সোর্স CI/CD সার্ভার যা মোবাইল অ্যাপ্লিকেশন নির্মাণ, পরীক্ষা এবং বিতরণে স্বচালিত করে। ক্লাউড সমাধানের বিপরীতে, Jenkins আপনার নিজস্ব অবকাঠামোতে মোতায়েন করে এবং ওয়েব ইন্টারফেস বা কোডের মাধ্যমে কনফিগার করা হয়। CloudBees, 2025 অনুযায়ী, 1.6 মিলিয়নের অধিক দল CI/CD প্রক্রিয়ার জন্য Jenkins ব্যবহার করে। সিস্টেমটি Master-Agent আর্কিটেকচারের মাধ্যমে বিতরিত বিল্ড এবং ডেভেলপমেন্ট টুলের সাথে সংযুক্তির জন্য 1800 এর অধিক প্লাগইন সমর্থন করে।
মূল বিষয়
Jenkins হল একটি ওপেন সোর্স CI/CD সার্ভার যা Java এ লেখা এবং সফটওয়্যার নির্মাণ, পরীক্ষা এবং বিতরণে স্বচালিত করে। মোবাইল ডেভেলপমেন্টের প্রাসঙ্গিকতায়, Jenkins দলগুলোকে স্বচালিতভাবে iOS এবং Android অ্যাপ্লিকেশন তৈরি করতে, ইউনিট এবং UI পরীক্ষা চালাতে, বিল্ড সাইন করতে এবং ম্যানুয়াল অপারেশন ছাড়াই App Store বা Google Play এ পৌঁছানোর অনুমতি দেয়।
Jenkins এর প্রয়োজন দেখা দেয় যখন একটি প্রকল্প স্থানীয় বিল্ড অতিক্রম করে এবং একাধিক ডেভেলপারের কাছ থেকে নিয়মিত কোড সংহতিকরণের প্রয়োজন হয়। প্রতিটি কমিট ম্যানুয়ালি তৈরি করতে সময় লাগে এবং ত্রুটিপ্রবণ — Jenkins রিপোজিটরিতে প্রতিটি পরিবর্তনের সাথে স্বচালিত পাইপলাইন শুরু করে এই সমস্যা সমাধান করে।
JetBrains Developer Ecosystem 2025 প্রতিবেদন অনুযায়ী, 54% মোবাইল দল তাদের প্রধান CI/CD প্ল্যাটফর্ম হিসেবে Jenkins ব্যবহার করে। সিস্টেমটি তার প্লাগইন আর্কিটেকচারের জন্য যে কোন ভাষা এবং প্ল্যাটফর্ম সমর্থন করে — Android এর জন্য Gradle এবং SDK Manager উপলব্ধ, iOS এর জন্য Xcode Integration এবং Keychain Manager।
Jenkins ব্যবহার করুন সেই প্রকল্পে যেখানে বিল্ড অবকাঠামোতে সম্পূর্ণ নিয়ন্ত্রণ, CI/CD প্রক্রিয়ার প্রতিটি ধাপের কাস্টমাইজেশন এবং এন্টারপ্রাইজ নিরাপত্তা ব্যবস্থার সাথে সংযুক্তি প্রয়োজন।
Jenkins আর্কিটেকচার Master-Agent মডেলের উপর নির্মিত। Master সার্ভার কনফিগারেশন, কাজ নির্ধারণ এবং ওয়েব ইন্টারফেস পরিচালনা করে, যখন এজেন্টরা উৎসর্গীকৃত বা অস্থায়ী মেশিনে প্রকৃত বিল্ড সম্পাদন করে। এই আর্কিটেকচার একটি একক Master সার্ভার থেকে macOS এজেন্টে iOS এবং Linux এজেন্টে Android অ্যাপ্লিকেশন সমান্তরালে তৈরির অনুমতি দেয়।
Jenkins Master নোড সকল সেটিং, প্লাগইন এবং বিল্ড ইতিহাস হোম ডিরেক্টরি $JENKINS_HOME এ সংরক্ষণ করে। এজেন্টরা SSH, JNLP বা WebSocket এর মাধ্যমে Master এর সাথে সংযুক্ত হয় এবং কিউ থেকে কাজ পায়। মোবাইল ডেভেলপমেন্টের জন্য, স্থাপিত SDK এবং টুল সহ iOS বিল্ডের জন্য পৃথক macOS এজেন্ট এবং Android বিল্ডের জন্য Linux এজেন্ট বরাদ্দ করার পরামর্শ দেওয়া হয়।
প্রতিটি এজেন্ট একটি স্থায়ী সার্ভার বা একটি গতিশীল Docker কন্টেইনার হতে পারে। CloudBees ডকুমেন্টেশন অনুযায়ী, 5 এজেন্টে বিল্ড বন্টনে 10 সমান্তরাল কাজের সাথে মোট CI/CD পাইপলাইন সময় 70% কমিয়ে দেয়।
Jenkins Pipeline হল সম্পূর্ণ CI/CD প্রক্রিয়ার সংজ্ঞা একটি কোড হিসেবে যা প্রকল্পের পাশাপাশি রিপোজিটরিতে সংরক্ষিত থাকে। Pipeline একটি Jenkinsfile এ বর্ণনা করা হয় এবং দুটি সিন্ট্যাক্স সমর্থন করে: Declarative (গঠনবদ্ধ, পূর্বনির্ধারিত ব্লক সহ) এবং Scripted (নমনীয়, এক্সিকিউশন প্রবাহের উপর সম্পূর্ণ নিয়ন্ত্রণ সহ Groovy-ভিত্তিক)।
অধিকাংশ মোবাইল প্রকল্পের জন্য Declarative সিন্ট্যাক্স সুপারিশ করা হয় কারণ এটি পঠনযোগ্যতা এবং পূর্বানুমানযোগ্যতা নিশ্চিত করে। Scripted Pipeline গতিশীল সমান্তরাল ধাপ, কাস্টম ত্রুটি পরিচালনা এবং পরিবেশ ভেরিয়েবলের উপর ভিত্তি করে শর্তমূলক যুক্তি সহ জটিল পরিদৃশ্যের জন্য উপযুক্ত।
Jenkins Pipeline দুটি সিন্ট্যাক্স সমর্থন করে যা CI/CD প্রক্রিয়ার ধাপগুলো কীভাবে বর্ণনা করা হয় তা নির্ধারণ করে। Declarative সিন্ট্যাক্স pipeline, stages, stage এবং steps কীওয়ার্ডের সাথে একটি ব্লক গঠন ব্যবহার করে, যা এটি নতুন ব্যবহারকারীদের জন্য সহজবোধ্য করে তোলে। Scripted সিন্ট্যাক্স Groovy-ভিত্তিক এবং শর্তমূলক বিবৃতি এবং লুপের মাধ্যমে নির্বাহনের উপর সম্পূর্ণ নিয়ন্ত্রণ প্রদান করে।
Declarative Pipeline স্বচালিতভাবে একটি স্যান্ডবক্স তৈরি করে — Groovy স্ক্রিপ্ট চালানোর জন্য একটি নিরাপদ পরিবেশ। এটি Java এবং Groovy এর বিপদপূর্ণ পদ্ধতি অ্যাক্সেস সীমিত করে, যা কর্পোরেট পরিবেশের জন্য গুরুত্বপূর্ণ যেখানে পাইপলাইন নিরাপত্তা একজন প্রশাসকের দ্বারা নিয়ন্ত্রিত হয়।
ডিক্লারেটিভ Pipeline চারটি মূল ব্লকের উপর নির্মিত: pipeline (রুট ব্লক), agent (এজেন্ট নির্দিষ্টকরণ), stages (ধাপের ধারাবাহিকতা) এবং post (সম্পূর্ণের পর কর্ম)। প্রতিটি ধাপে বিল্ড কমান্ড সহ steps থাকে, এবং post ব্লক সাফল্য, ব্যর্থতা বা অস্থির বিল্ড অবস্থায় কর্ম সংজ্ঞায়িত করে।
Post ব্লক মোবাইল প্রকল্পের জন্য বিশেষভাবে দরকারী — এখানে বিল্ড ব্যর্থ হলে Slack বিজ্ঞপ্তি কনফিগার করা যায় বা সফল সমাপ্তির পর IPA এবং APK আর্টিফ্যাক্ট আর্কাইভ করা যায়। যদিও পাইপলাইন ম্যানুয়ালি বন্ধ করা হয়, Jenkins post কর্ম গ্যারান্টি দেয়।
// iOS অ্যাপ্লিকেশনের জন্য Declarative Pipeline
pipeline {
agent { label 'macos' }
stages {
stage('Build') {
steps {
sh 'xcodebuild -workspace App.xcworkspace -scheme App clean build'
}
}
stage('Test') {
steps {
sh 'xcodebuild -workspace App.xcworkspace -scheme App test'
}
}
}
}
Scripted Pipeline agent এর পরিবর্তে একটি node ব্লক প্রদান করে এবং গতিশীল শাখায়নের জন্য Groovy গঠন ব্যবহারের অনুমতি দেয়। এই সিন্ট্যাক্স সেই পাইপলাইনের জন্য সুবিধাজনক যেখানে ধাপের সেট বিল্ড প্যারামিটার বা পূর্ববর্তী ধাপের ফলাফলের উপর নির্ভর করে।
// সমান্তরাল পর্যায় সহ Scripted Pipeline
node('macos') {
stage('Parallel Builds') {
parallel(
ios: { buildIOS() },
android: { buildAndroid() }
)
}
}
def buildIOS() {
sh 'fastlane ios build'
}
iOS প্রকল্পের জন্য, Jenkinsfile এর Xcode, CocoaPods বা Swift Package Manager এবং Fastlane ইনস্টল সহ একটি macOS এজেন্ট প্রয়োজন। একটি সাধারণ pipeline এ ধাপ অন্তর্ভুক্ত রয়েছে: নির্ভরতা ইনস্টলেশন, বিল্ড, পরীক্ষা চালানো, কোড সাইনিং এবং TestFlight বা App Store এ বিতরণ।
Jenkins এ iOS বিল্ডের একটি মূল বৈশিষ্ট্য হল সার্টিফিকেট এবং প্রোভিজনিং প্রোফাইল পরিচালনা। রিপোজিটরি থেকে স্বচালিত সার্টিফিকেট প্রাপ্তির জন্য Fastlane Match বা নিরাপদ কী সংরক্ষণের জন্য Jenkins Credentials Binding প্লাগইন ব্যবহার করার পরামর্শ দেওয়া হয়।
pipeline {
agent { label 'macos' }
environment {
MATCH_PASSWORD = credentials('match-password')
}
stages {
stage('Install Dependencies') {
steps {
sh 'pod install --repo-update'
}
}
stage('Build and Test') {
steps {
sh 'fastlane scan'
sh 'fastlane gym'
}
}
stage('Deploy to TestFlight') {
when { branch 'main' }
steps {
sh 'fastlane upload_testflight'
}
}
}
}
iOS ইউনিট টেস্ট এর জন্য, সিমুলেটর নির্দিষ্টকরণ সহ xcodebuild test ব্যবহার করুন। Jenkins JUnit প্লাগইনের মাধ্যমে XCTest রিপোর্ট প্রকাশন সমর্থন করে — বিল্ড ড্যাশবোর্ডে টেস্ট ফলাফল এম্বেড করতে .xcresult কে XML ফরম্যাটে রূপান্তর করুন।
Jenkins এ Android বিল্ড Java JDK, Android SDK, Gradle এবং এমুলেটর ইনস্টল সহ Linux এজেন্টে সম্পাদিত হয়। Pipeline এ ধাপ অন্তর্ভুক্ত রয়েছে: লিন্টার যাচাই, ইউনিট টেস্ট, APK বা AAB বিল্ড, এমুলেটরে ইনস্ট্রুমেন্টেড টেস্ট এবং Google Play Console এ প্রকাশন।
Android SDK পরিচালনার জন্য, প্রয়োজনীয় প্ল্যাটফর্ম এবং build-tools ইনস্টলের জন্য Jenkinsfile এ sdkmanager ব্যবহার করুন। পরবর্তী রানগুলো দ্রুত করতে বিল্ডের মধ্যে .gradle এবং .android ডিরেক্টরি ক্যাশ করার পরামর্শ দেওয়া হয়।
pipeline {
agent { label 'linux' }
stages {
stage('Lint Check') {
steps {
sh './gradlew lint'
}
}
stage('Unit Tests') {
steps {
sh './gradlew testDebugUnitTest'
}
}
stage('Build APK') {
steps {
sh './gradlew assembleDebug'
}
post {
success {
archiveArtifacts artifacts: '**/build/outputs/apk/**/*.apk'
}
}
}
}
}
Android এ ইনস্ট্রুমেন্টেড টেস্টের জন্য একটি চলমান এমুলেটর প্রয়োজন। Jenkins Android Emulator প্লাগইন সমর্থন করে, যা স্বচালিতভাবে টেস্টের আগে একটি এমুলেটর তৈরি এবং শুরু করে। শারীরিক ডিভাইসের জন্য, Firebase Test Lab ব্যবহার করুন — Google Cloud SDK প্লাগইনের মাধ্যমে সংযুক্তি উপলব্ধ।
Jenkins প্লাগইন সিস্টেম প্ল্যাটফর্মের একটি মূল সুবিধা। 1800 এর অধিক প্লাগইন CI/CD এর সকল ধাপ কভার করে: ভার্সন কন্ট্রোল সিস্টেমের সাথে সংযুক্তি থেকে ক্লাউড পরিবেশনে ডিপ্লোমেন্ট পর্যন্ত। প্রতিটি প্লাগইন pipeline এ নতুন ধাপ যোগ করে এবং অতিরিক্ত কনফিগারেশন পৃষ্ঠা সহ ওয়েব ইন্টারফেস প্রসারিত করে।
মোবাইল ডেভেলপমেন্টের জন্য, ক্রেডেনশাল পরিচালনা প্লাগইনের একটি সেট অপরিহার্য: App Store Connect টোকেন এবং Google Play পরিষেবা অ্যাকাউন্ট সংরক্ষণের জন্য Credentials Binding। Xcode Integration প্লাগইন Jenkins UI থেকে iOS অ্যাপ্লিকেশন বিল্ড ধাপ যোগ করে।
| প্লাগইন | উদ্দেশ্য | প্ল্যাটফর্ম |
|---|---|---|
| Git Integration | রিপোজিটরি ক্লোনিং, ব্রাঞ্চ এবং Pull Request পরিচালনা | iOS, Android |
| Gradle Plugin | রিপোর্ট প্রকাশন সহ Android বিল্ডের জন্য Gradle কাজ চালানো | Android |
| Xcode Integration | Jenkinsfile ছাড়া iOS প্রকল্প নির্মাণ | iOS |
| Docker Pipeline | পৃথক পরিবেশ সহ Docker কন্টেইনারে বিল্ড চালানো | iOS, Android |
| Slack Notification | Slack চ্যানেলে বিল্ড অবস্থার বিজ্ঞপ্তি | iOS, Android |
Docker Pipeline প্লাগইন প্রতিটি বিল্ড ধাপ একটি পৃথক কন্টেইনারে চালানোর অনুমতি দেয়, যা পরিবেশ পুনরুৎপাদনযোগ্যতা নিশ্চিত করে এবং পরিবেশ পার্থক্যের সমস্যা দূর করে। Android বিল্ডের জন্য, Gradle সম্প্রদায় থেকে পূর্ব-ইনস্টল করা Android SDK সহ ইমেজ ব্যবহার করুন।
Jenkins এবং Travis CI এর মধ্যে পছন্দ দলের আকার, বাজেট এবং অবকাঠামোর প্রয়োজনীয়তার উপর নির্ভর করে। Jenkins হল সম্পূর্ণ নিয়ন্ত্রণ সহ একটি স্ব-হোস্টেড সমাধান, যার জন্য একটি উৎসর্গীকৃত সার্ভার এবং প্রশাসক প্রয়োজন। Travis CI হল ব্যবহার পরিমাণে প্রদানের একটি ক্লাউড পরিষেবা, যার একটি সার্ভার পরিচালনার প্রয়োজন নেই।
স্টার্টআপ এবং ছোট দলের জন্য, Travis CI পছন্দযোগ্য — শূন্য অবকাঠামো খরচ, GitHub এর সাথে সহজ সংযোগ, এবং iOS এবং Android এর জন্য প্রস্তুত বিল্ড। Enterprise প্রকল্পের জন্য, Jenkins সুবিধা প্রদান করে: নিজস্ব macOS রানার, কর্পোরেট নিরাপত্তা নীতি মেনে চলা, এবং Jenkinsfile এর মাধ্যমে সূক্ষ্ম pipeline কনফিগারেশন।
Stack Overflow Survey 2025 অনুযায়ী, Jenkins ব্যবহার করেন 42% পেশাদার ডেভেলপার, তুলনায় Travis CI ব্যবহার করেন 12%। তবে, সার্বজনিক রিপোজিটরির জন্য বিনামূল্য পরিকল্পনা এবং সর্বনিম্ন প্রবেশ বাধার কারণে Travis CI ওপেন সোর্স সম্প্রদায়ে এখনও জনপ্রিয় রয়েছে।
Jenkins সুবিধার একটি সেট প্রদান করে যা এটি কে মোবাইল ডেভেলপমেন্টের জন্য CI/CD মান করে তোলে। বিনামূল্য MIT লাইসেন্স বাণিজ্যিক প্রকল্পে বিধিনিষেধ ছাড়া সার্ভার ব্যবহারের অনুমতি দেয়, এবং ওপেন সোর্স কোড ভেন্ডর স্বাধীনতা এবং নিরাপত্তা অডিট ক্ষমতার গ্যারান্টি দেয়।
Master-Agent আর্কিটেকচার অনুভূমিক স্কেলিং সক্ষম করে — একটি নতুন এজেন্ট যোগ করলে pipeline থ্রুপুট রৈখিকভাবে বৃদ্ধি পায়। Jenkins Jenkins X এর মাধ্যমে Kubernetes এ গতিশীল এজেন্ট সমর্থন করে, যা প্রয়োজন অনুযায়ী স্বচালিতভাবে বিল্ডার তৈরি এবং ধ্বংস করার অনুমতি দেয়।
প্লাগইন ইকোসিস্টেম সকল আধুনিক টুল কভার করে: Docker, Kubernetes, Fastlane, SonarQube, GitLab, Bitbucket। একটি প্রস্তুত প্লাগইন না থাকলে, আপনি Java এ নিজের এক্সটেনশন লিখতে পারেন বা প্রকল্পের মধ্যে কোড পুনর্ব্যবহারের জন্য Pipeline Shared Libraries ব্যবহার করতে পারেন।
বারংবার জিজ্ঞাসিত প্রশ্ন
Jenkins হল একটি ওপেন সোর্স CI/CD সার্ভার যা iOS এবং Android অ্যাপ্লিকেশনের নির্মাণ, পরীক্ষা এবং বিতরণ স্বচালিত করে। এটি Java এ চলে, Master-Agent আর্কিটেকচারের মাধ্যমে বিতরিত বিল্ড সমর্থন করে এবং ওয়েব ইন্টারফেস বা প্রকল্প রিপোজিটরিতে Jenkinsfile এর মাধ্যমে কনফিগার করা যায়।
Jenkins এর পার্থক্য এর স্ব-পরিচালিত অবকাঠামো এবং প্লাগইন সিস্টেমে। Travis CI বা GitHub Actions এর বিপরীতে, Jenkins এর নিজস্ব সার্ভারে ইনস্টলেশন প্রয়োজন, কিন্তু এন্টারপ্রাইজ প্রকল্পের জন্য বিল্ড পরিবেশ, নিরাপত্তা এবং প্রবেশাধিকার নীতির উপর সম্পূর্ণ নিয়ন্ত্রণ দেয়।
Jenkins Pipeline হল Jenkinsfile এ সংরক্ষিত Groovy কোড হিসেবে CI/CD প্রক্রিয়ার সংজ্ঞা। Pipeline এ নির্মাণ, পরীক্ষা এবং ডিপ্লোমেন্ট বর্ণনা করা ধাপ (stages) এবং পদক্ষেপ (steps) রয়েছে। এটি দুটি সিন্ট্যাক্স সমর্থন করে: সরল পরিদৃশ্যের জন্য Declarative এবং জটিলের জন্য Scripted।
iOS এর জন্য, Xcode Integration এবং Keychain Manager অপরিহার্য। Android এর জন্য — Gradle Plugin এবং Android Emulator। উভয় প্ল্যাটফর্মের জন্য: Git Integration, Credentials Binding, Docker Pipeline এবং বিল্ড অবস্থার বিজ্ঞপ্তির জন্য Slack Notification।
একটি সার্ভারে Jenkins ইনস্টল করুন, iOS এর জন্য একটি macOS এজেন্ট এবং ইনস্টল করা SDK সহ Android এর জন্য একটি Linux এজেন্ট যোগ করুন। বিল্ড ধাপ বর্ণনা করে রিপোজিটরি রুটে একটি Jenkinsfile তৈরি করুন। iOS এর জন্য, কোড সাইনিংয়ের জন্য Fastlane ব্যবহার করুন; Android এর জন্য, নির্ভরতা ক্যাশিং সহ Gradle কাজ ব্যবহার করুন।
সারাংশ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন