CircleCI হল একটি ক্লাউড CI/CD প্ল্যাটফর্ম যা iOS এবং Android-এর জন্য মোবাইল অ্যাপ সহ সফটওয়্যারের বিল্ড, টেস্টিং এবং ডিপ্লয়মেন্ট অটোমেট করে। CircleCI, 2024-এর মতে, প্ল্যাটফর্মটি মাসিক 30 মিলিয়নেরও বেশি বিল্ড প্রক্রিয়া করে এবং orbs — জনপ্রিয় টুলের জন্য রেডিমেড কনফিগারেশন প্যাকেজের উপর ভিত্তি করে একটি অনন্য আর্কিটেকচার অফার করে।
মূল পয়েন্ট
CircleCI হল একটি ক্লাউড CI/CD প্ল্যাটফর্ম যা 2011 সালে প্রতিষ্ঠিত হয়। সিস্টেমটি আপনাকে YAML ফাইল .circleci/config.yml-এ পাইপলাইন বর্ণনা করতে এবং সেগুলিকে বিচ্ছিন্ন কন্টেইনার বা ভার্চুয়াল মেশিনে চালাতে দেয়। CircleCI Android, iOS, Flutter এবং React Native সহ সমস্ত জনপ্রিয় ভাষা এবং প্ল্যাটফর্ম সমর্থন করে।
মোবাইল ডেভেলপমেন্টের জন্য, CircleCI iOS বিল্ডের জন্য প্রি-ইনস্টল করা Xcode সহ macOS executors, Android SDK সহ Linux executors, সেইসাথে Gradle এবং CocoaPods-এর জন্য ক্যাশিং অফার করে। একটি মূল বৈশিষ্ট্য হল orbs, যা একটি লাইনে রেডিমেড কনফিগারেশন প্লাগ ইন করতে দেয়: orb: android, orb: ios, orb: flutter। CircleCI স্বয়ংক্রিয়ভাবে প্রকল্পের ধরন সনাক্ত করে এবং প্রথমবার রিপোজিটরি সংযোগ করার সময় একটি টেমপ্লেট কনফিগারেশন সুপারিশ করে।
প্ল্যাটফর্মটি ডিবাগিংয়ের জন্য চলমান কন্টেইনারে SSH অ্যাক্সেস সমর্থন করে — ব্যর্থ বিল্ড ট্রাবলশুট করার জন্য একটি দরকারী বৈশিষ্ট্য। CircleCI CLI আপনাকে স্থানীয়ভাবে কনফিগারেশন বৈধতা দিতে এবং চালাতে, orbs পরিচালনা করতে এবং লগ দেখতে দেয়। প্ল্যাটফর্মটি ওয়েবহুক সিস্টেমের মাধ্যমে GitHub, GitHub Enterprise, Bitbucket এবং GitLab-এর সাথে ইন্টিগ্রেট হয়।
CircleCI আর্কিটেকচারে তিনটি স্তর রয়েছে: Pipeline, Workflow এবং Job। Pipeline হল মূল প্রক্রিয়া যা কমিটে ট্রিগার হয়। একটি Pipeline ওয়ার্কফ্লো নিয়ে গঠিত — Jobs-এর একটি গ্রাফ যা অনুক্রমিক বা সমান্তরালভাবে চলতে পারে। প্রতিটি Job একটি Executor — একটি নির্দিষ্ট ইমেজ সহ একটি পরিবেশে চলে। একটি Workflow-এ approval gates — ডিপ্লয়মেন্টের আগে ম্যানুয়াল নিশ্চিতকরণ অন্তর্ভুক্ত থাকতে পারে।
Orbs হল পুনর্ব্যবহারযোগ্য YAML কনফিগারেশন প্যাকেজ যা CircleCI Orb Registry-এর মাধ্যমে বিতরণ করা হয়। একটি Orb-এ jobs, commands, executors এবং উদাহরণ থাকতে পারে। জনপ্রিয় orbs: android, ios, flutter, firebase, slack। উদাহরণস্বরূপ, android orb যুক্ত করা 50+ লাইন কনফিগারেশনকে একটি লাইনে প্রতিস্থাপন করে। CircleCI CLI আপনাকে প্রতিষ্ঠানের মধ্যে পাইপলাইন মানসম্মত করতে নিজস্ব orbs তৈরি, পরীক্ষা এবং প্রকাশ করতে দেয়।
| Executor | এর জন্য উপযুক্ত | বিল্ড পরিবেশ |
|---|---|---|
| Docker | Android, Backend | Linux কন্টেইনার |
| macOS | iOS, macOS | Xcode সহ macOS VM |
| Machine | Docker-in-Docker | Ubuntu VM |
| Windows | .NET, WinUI | Windows Server |
Contexts হল প্রতিষ্ঠান স্তরে উপলব্ধ পরিবেশ ভেরিয়েবলের নামযুক্ত সেট। উদাহরণস্বরূপ, app-store-credentials কনটেক্সটে App Store-এ প্রকাশের জন্য Apple ID এবং পাসওয়ার্ড থাকে। এটি প্রতিলিপি ছাড়াই প্রকল্পগুলির মধ্যে secrets ব্যবস্থাপনা সহজ করে।
Android প্রকল্পের জন্য, CircleCI Android SDK সহ cibuilds/android Docker ইমেজ ব্যবহার করে। একটি সাধারণ ওয়ার্কফ্লো অন্তর্ভুক্ত করে: checkout, JDK ইনস্টলেশন, Gradle ক্যাশিং, বিল্ড, টেস্ট নির্বাহ। iOS-এর জন্য, Xcode এবং কোড সাইনিং সেটআপ সহ macOS executor প্রয়োজন। প্রথমবার সংযোগ করার সময়, CircleCI স্বয়ংক্রিয়ভাবে প্রকল্পের ধরন সনাক্ত করে এবং প্রস্তাবিত সেটিংস সহ একটি মৌলিক কনফিগারেশন জেনারেট করে।
Flutter প্রকল্পের জন্য, CircleCI circleci/flutter orb প্রদান করে, যার মধ্যে Linux এবং macOS-এর জন্য প্রি-ইনস্টল করা Flutter SDK সহ executors অন্তর্ভুক্ত। Orb সমর্থন করে উভয় প্ল্যাটফর্মের জন্য বিল্ড, pub-cache ক্যাশিং এবং টেস্ট চালানো। সেটআপ Flutter সংস্করণ এবং বিল্ড কমান্ড নির্দিষ্ট করার মধ্যে সীমাবদ্ধ। কাস্টম Flutter বা Dart সংস্করণের জন্য, প্রয়োজনীয় SDK সহ একটি Docker ইমেজ ব্যবহার করা যেতে পারে। Flutter orb উন্নত বিকল্পও সমর্থন করে — উদাহরণস্বরূপ, বিল্ডের আগে dart analyze-এর মাধ্যমে কোড বিশ্লেষণ।
CircleCI-এর Android orb রেডিমেড jobs প্রদান করে: build-and-test, deploy-to-play-store। Orb স্বয়ংক্রিয়ভাবে পরিবেশ, ক্যাশিং এবং স্বাক্ষর কনফিগার করে। Orb যুক্ত করার পরে, আপনাকে শুধু SDK সংস্করণ এবং বিল্ড কমান্ড নির্দিষ্ট করতে হবে।
iOS বিল্ডের জন্য, executor Xcode সংস্করণ সহ macos-এ সেট করা হয়। CircleCI প্রদান করে Xcode 14, 15 এবং 16 সহ ইমেজ। Checkout-এর পরে, কোড xcodebuild-এর মাধ্যমে কম্পাইল করা হয় এবং সিমুলেটরে টেস্ট চালানো হয়। কোড সাইনিং fastlane match বা ম্যানুয়াল সার্টিফিকেট ইনস্টলেশনের মাধ্যমে কনফিগার করা হয়।
ক্যাশিং CircleCI-তে একটি মূল কর্মক্ষমতা উপাদান। ক্যাশ মেকানিজম একটি কী ব্যবহার করে ওয়ার্কফ্লো রানের মধ্যে ডিরেক্টরি সংরক্ষণ করে। Gradle-এর জন্য, ~/.gradle ক্যাশ করা হয়; CocoaPods-এর জন্য — Pods/; npm/SPM-এর জন্য — node_modules/.build। যখন লক ফাইল পরিবর্তন হয়, ক্যাশ স্বয়ংক্রিয়ভাবে আপডেট হয়। CircleCI পৃথক নীতি সমর্থন করে: save_cache বিলম্বিত হতে পারে (when: always), যখন restore_cache বাধ্যতামূলক।
সমান্তরালতা resource class-এর সাথে মিলে বিল্ড কর্মক্ষমতা সূক্ষ্ম-টিউনিংয়ের অনুমতি দেয়। Resource class একটি কন্টেইনারের জন্য CPU এবং RAM নির্ধারণ করে: small (1 CPU, 2 GB), medium (2 CPU, 4 GB), medium+ (3 CPU, 5 GB) এবং large (4 CPU, 8 GB)। Xcode-এর সাথে iOS বিল্ডের জন্য, medium বা larger resource class সহ macOS executor ব্যবহার করার পরামর্শ দেওয়া হয় — Swift কোড কম্পাইলেশনের জন্য উল্লেখযোগ্য সংস্থান প্রয়োজন।
সমান্তরালতা পরীক্ষাগুলিকে একাধিক কন্টেইনারে বিভক্ত করে, চলার সময় হ্রাস করে। উদাহরণস্বরূপ: parallelism: 4 পরীক্ষাগুলিকে 4টি সমান্তরাল কন্টেইনারে চালায়। CircleCI স্বয়ংক্রিয়ভাবে কন্টেইনারগুলির মধ্যে টেস্ট ফাইল বিতরণ করে। circleci tests glob কমান্ড টেস্ট তালিকা সংগ্রহ করে, এবং circleci tests split সেগুলিকে সমানভাবে বিতরণ করে।
- restore_cache:
keys:
- v1-gradle-{{ checksum "build.gradle" }}
- v1-gradle-
- run: ./gradlew assembleDebug
- save_cache:
key: v1-gradle-{{ checksum "build.gradle" }}
paths:
- ~/.gradle/caches
- ~/.gradle/wrapper
আসুন দুটি job — build এবং test — সহ একটি Android প্রকল্পের জন্য একটি সম্পূর্ণ CircleCI কনফিগারেশন দেখি। কনফিগারেশনে অন্তর্ভুক্ত Android SDK সহ Docker executor, Gradle ক্যাশিং এবং সমান্তরাল টেস্ট নির্বাহ। Artifacts ডাউনলোডের জন্য সংরক্ষণ করা হয়। build-and-test ওয়ার্কফ্লো প্রধান শাখায় প্রতিটি push-এ উভয় job চালায়।
version: 2.1
orbs:
android: circleci/android@2.5.0
jobs:
build:
executor: android/default
steps:
- checkout
- android/restore-gradle-cache
- run: ./gradlew assembleRelease
- android/save-gradle-cache
- store_artifacts:
path: app/build/outputs/apk/release
- store_test_results:
path: app/build/reports/tests
test:
executor: android/default
parallelism: 4
steps:
- checkout
- android/restore-gradle-cache
- run:
command: |
cd app
./gradlew test
workflows:
version: 2
build-and-test:
jobs:
- build
- test
CircleCI এবং বিকল্পগুলির মধ্যে নির্বাচন করার সময় — যদি আপনার টিম GitHub ব্যবহার করে, তাহলে GitHub Actions একটি সহজ পছন্দ হতে পারে। CircleCI সেই টিমগুলির জন্য ভাল যাদের নমনীয় সমান্তরাল টেস্ট নির্বাহ, কাস্টম executor পরিবেশ কনফিগারেশন এবং বিস্তারিত বিল্ড পরিসংখ্যান প্রয়োজন। CircleCI Insights পাইপলাইন কর্মক্ষমতা মেট্রিক্স সহ একটি ড্যাশবোর্ড সরবরাহ করে: গড় বিল্ড সময়, প্রবণতা এবং বাধা। Insights দীর্ঘ চলমান jobs সনাক্ত করতে এবং সেগুলি অপ্টিমাইজ করতে সহায়তা করে। CircleCI API আপনাকে প্রোগ্রাম্যাটিকভাবে পাইপলাইন পরিচালনা করতে, বিল্ড ট্রিগার করতে এবং মেট্রিক্স পেতে দেয়।
নিরাপদ secrets ব্যবস্থাপনার জন্য, CircleCI Contexts — প্রতিষ্ঠান স্তরে পরিবেশ ভেরিয়েবলের নামযুক্ত সেট — সমর্থন করে। Contexts সুরক্ষিত ভূমিকা-ভিত্তিক অ্যাক্সেস দ্বারা: শুধুমাত্র নির্দিষ্ট টিম একটি নির্দিষ্ট কনটেক্সট ব্যবহার করতে পারে। উদাহরণস্বরূপ, production-deploy কনটেক্সটে App Store Connect কী রয়েছে এবং এটি শুধুমাত্র লিড ডেভেলপারদের জন্য উপলব্ধ। অনুমোদন গেটের সাথে মিলিয়ে, এটি একটি ব্যাপক CI/CD নিরাপত্তা ব্যবস্থা গঠন করে।
CircleCI Orb Registry-তে বিভিন্ন CI/CD কাজের জন্য শত শত রেডিমেড প্যাকেজ রয়েছে। মোবাইল ডেভেলপমেন্টের জন্য, মূল orbs-এর মধ্যে রয়েছে: circleci/android, circleci/ios, circleci/flutter, laurencerussell/firebase-app-distribution। প্রতিটি orb সংস্করণযুক্ত এবং ডকুমেন্টেড। Orbs পাবলিক (সবার জন্য উপলব্ধ) বা প্রাইভেট (শুধুমাত্র আপনার প্রতিষ্ঠানের জন্য) হতে পারে।
Orbs ব্যবহার কনফিগারেশন 5–10 গুণ হ্রাস করে। উদাহরণস্বরূপ, circleci/android orb প্রি-ইনস্টল করা SDK এবং restore-gradle-cache, save-gradle-cache কমান্ড সহ android/default executor সরবরাহ করে। circleci/ios orb-এ Xcode সহ একটি executor এবং fastlane-এর মাধ্যমে কোড সাইনিংয়ের জন্য কমান্ড অন্তর্ভুক্ত। Orbs সহজেই একত্রিত করা যেতে পারে: বিল্ডের জন্য android orb এবং বিজ্ঞপ্তির জন্য slack orb যুক্ত করুন।
CircleCI বিল্ট-ইন টেস্ট রিপোর্ট সমর্থনও অফার করে। Store_test_results স্বয়ংক্রিয়ভাবে JUnit, XCTest এবং অন্যান্য ফর্ম্যাট থেকে টেস্ট ফলাফল পার্স এবং ভিজুয়ালাইজ করে। মোবাইল প্রকল্পের জন্য, এর অর্থ ব্যর্থ টেস্ট, রানটাইম প্রবণতা এবং বিল্ড স্থিতিশীলতার ইতিহাসের কেন্দ্রীভূত দৃশ্য, যা কোড গুণমান রক্ষণাবেক্ষণ সহজ করে।
orbs:
ios: circleci/ios@2.0.0
jobs:
build-and-test:
executor: ios/default
steps:
- checkout
- ios/install-dependencies
- ios/build-and-test
কাস্টম Orb প্রকাশ করা CircleCI CLI-এর মাধ্যমে উপলব্ধ। circleci orb create এবং circleci orb publish কমান্ড orb রেজিস্ট্রিতে আপলোড করে। এটি প্রতিষ্ঠানের মধ্যে CI/CD মানসম্মত করার জন্য দরকারী — একবার তৈরি করুন, সব প্রকল্পে ব্যবহার করুন।
সচরাচর জিজ্ঞাসিত প্রশ্ন
CircleCI একটি বিনামূল্যের প্ল্যান অফার করে যাতে একটি কন্টেইনারের জন্য মাসে 6000 মিনিট অন্তর্ভুক্ত। Performance Plan ($30/মাস)-এ 10টি সমান্তরাল job এবং 14,000 মিনিট অন্তর্ভুক্ত। Scale Plan — সীমাহীন সমান্তরালতা সহ কাস্টম মূল্য নির্ধারণ।
Orbs হল পুনর্ব্যবহারযোগ্য YAML কনফিগারেশন প্যাকেজ যা অফিসিয়াল রেজিস্ট্রির মাধ্যমে বিতরণ করা হয়। এগুলিতে জনপ্রিয় টুল এবং প্ল্যাটফর্মের জন্য রেডিমেড jobs, commands এবং executors থাকে।
হ্যাঁ, CircleCI প্রি-ইনস্টল করা Xcode (সংস্করণ 14, 15, 16) সহ macOS executor সমর্থন করে। iOS 17 এবং 18, watchOS এবং tvOS-এর জন্য ইমেজ উপলব্ধ। কোড সাইনিং fastlane match বা ম্যানুয়ালি কনফিগার করা হয়।
Job-এ parallelism: N উল্লেখ করুন — CircleCI টেস্টগুলিকে N কন্টেইনারে ভাগ করবে। circleci tests split কমান্ড টেস্টগুলি সমানভাবে বিতরণ করে। টেস্টগুলি সমান্তরালভাবে চলে, কন্টেইনারের সংখ্যার অনুপাতে মোট সময় হ্রাস করে।
CircleCI আরও নমনীয় executors (Docker, macOS, Machine, Windows), একটি উন্নত orb সিস্টেম, বিল্ট-ইন সমান্তরাল টেস্ট বিভাজন এবং বিস্তারিত বিল্ড artifacts অফার করে। GitHub Actions GitHub ইন্টিগ্রেশন এবং সরলতায় এগিয়ে।
সারাংশ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন