CircleCI एक क्लाउड CI/CD प्लेटफ़ॉर्म है जो iOS और Android के लिए मोबाइल ऐप्स सहित सॉफ़्टवेयर के बिल्ड, परीक्षण और डिप्लॉयमेंट को स्वचालित करता है। CircleCI, 2024 के अनुसार, प्लेटफ़ॉर्म मासिक रूप से 30 मिलियन से अधिक बिल्ड प्रोसेस करता है और orbs — लोकप्रिय टूल के लिए तैयार कॉन्फ़िगरेशन पैकेज पर आधारित एक अनूठी आर्किटेक्चर प्रदान करता है।
मुख्य बातें
CircleCI एक क्लाउड CI/CD प्लेटफ़ॉर्म है जिसकी स्थापना 2011 में हुई थी। सिस्टम आपको YAML फ़ाइल .circleci/config.yml में पाइपलाइनों का वर्णन करने और उन्हें अलग-थलग कंटेनरों या वर्चुअल मशीनों में चलाने की अनुमति देता है। CircleCI Android, iOS, Flutter और React Native सहित सभी लोकप्रिय भाषाओं और प्लेटफ़ॉर्म का समर्थन करता है।
मोबाइल डेवलपमेंट के लिए, CircleCI पूर्व-स्थापित Xcode के साथ iOS बिल्ड के लिए 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 में Workflows — 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
आइए दो jobs — build और test — के साथ Android प्रोजेक्ट के लिए एक पूर्ण CircleCI कॉन्फ़िगरेशन देखें। कॉन्फ़िगरेशन में शामिल है Android SDK के साथ Docker executor, Gradle कैशिंग और समानांतर परीक्षण निष्पादन। Artifacts डाउनलोड के लिए सहेजे जाते हैं। build-and-test वर्कफ़्लो मुख्य शाखा पर प्रत्येक push पर दोनों jobs चलाता है।
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 समानांतर jobs और 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 एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें