Swift परियोजनाओं के लिए CI/CD का परिचय
Swift में मोबाइल और डेस्कटॉप एप्लिकेशन के आधुनिक विकास के लिए न केवल गुणवत्तापूर्ण कोड की आवश्यकता है, बल्कि एक विश्वसनीय एकीकरण और वितरण प्रक्रिया की भी आवश्यकता है। CI/CD (Continuous Integration / Continuous Deployment) एक अभ्यास है जो एप्लिकेशन के बिल्ड, परीक्षण और तैनाती को स्वचालित करने की अनुमति देता है। Swift परियोजनाओं के लिए, विशेष रूप से iOS और macOS के तहत, GitHub Actions सबसे सुविधाजनक और लोकप्रिय टूल में से एक है।
इस लेख में, हम यह समझेंगे कि GitHub Actions का उपयोग करके Swift परियोजनाओं के लिए एक पूर्ण CI/CD पाइपलाइन कैसे सेट अप करें। आप सीखेंगे कि बिल्ड को कैसे स्वचालित करें, यूनिट टेस्ट कैसे चलाएं, और यहां तक कि एप्लिकेशन को TestFlight या Mac App Store पर कैसे भेजें।
Swift के लिए GitHub Actions क्यों?
GitHub Actions Apple इकोसिस्टम के साथ काम करने के लिए अंतर्निहित क्षमताएं प्रदान करता है। तृतीय-पक्ष सेवाओं के विपरीत, यह रिपॉजिटरी के साथ पूरी तरह से एकीकृत है और प्लगइन्स के अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता नहीं है। मुख्य लाभ:
- मुफ्त मिनट सार्वजनिक रिपॉजिटरी के लिए (प्रति माह 2000 मिनट तक)
- तैयार एक्शन Xcode, SwiftLint, CocoaPods और SPM के लिए
- macOS रनर का समर्थन पूर्व-स्थापित Xcode के साथ
- लचीला कॉन्फ़िगरेशन YAML फ़ाइलों के माध्यम से
Swift प्रोजेक्ट के लिए बुनियादी CI सेटअप
चलिए एक सरल पाइपलाइन से शुरू करते हैं जो प्रोजेक्ट को बिल्ड करेगी और main ब्रांच पर प्रत्येक पुश या Pull Request बनाने पर टेस्ट चलाएगी।
रिपॉजिटरी की रूट में .github/workflows/swift-ci.yml फ़ाइल बनाएं:
name: Swift CI
on: push: branches: [ main ] pull_request: branches: [ main ]
jobs: build-and-test: runs-on: macos-latest steps: - uses: actions/checkout@v4 - name: Select Xcode version run: sudo xcode-select -s /Applications/Xcode_15.2.app - name: Build run: xcodebuild build -scheme MyApp -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 15,OS=17.2' | xcpretty - name: Run tests run: xcodebuild test -scheme MyApp -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 15,OS=17.2' | xcprettyयह workflow दो मुख्य चरण निष्पादित करता है: प्रोजेक्ट का बिल्ड और टेस्ट चलाना। xcpretty के उपयोग पर ध्यान दें — यह उपयोगिता Xcodebuild के आउटपुट को पढ़ने योग्य प्रारूप में प्रारूपित करती है।
कोड गुणवत्ता की अतिरिक्त जांच
SwiftLint का उपयोग करके स्थैतिक विश्लेषण जोड़ें। यह टीम में एक समान कोड शैली बनाए रखने में मदद करेगा:
jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: SwiftLint uses: norio-nomura/action-swiftlint@3.2.1 with: args: --strictअब प्रत्येक कमिट पर SwiftLint नियमों के अनुपालन के लिए कोड की जाँच की जाएगी। यदि उल्लंघन पाए जाते हैं, तो workflow एक त्रुटि के साथ समाप्त हो जाएगा।
उन्नत CI/CD: परीक्षण और डिप्लॉयमेंट
बुनियादी सेटअप के बाद, आप अधिक जटिल परिदृश्यों पर आगे बढ़ सकते हैं। आइए एक पाइपलाइन पर विचार करें जिसमें शामिल है:
- कई सिमुलेटरों के लिए बिल्ड
- कोड कवरेज के साथ परीक्षण
- TestFlight (iOS के लिए) या Mac App Store में स्वचालित प्रकाशन
कवरेज के साथ बिल्ड और परीक्षण
टेस्ट कवरेज डेटा एकत्र करने के लिए -enableCodeCoverage YES फ्लैग का उपयोग करें:
jobs: test-coverage: runs-on: macos-latest steps: - uses: actions/checkout@v4 - name: Test with coverage run: | xcodebuild test \ -scheme MyApp \ -sdk iphonesimulator \ -destination 'platform=iOS Simulator,name=iPhone 15,OS=17.2' \ -enableCodeCoverage YES \ -derivedDataPath Build/DerivedData | xcpretty - name: Upload coverage to Codecov uses: codecov/cod
```