Swift प्रोजेक्ट्स के लिए CI/CD: GitHub Actions सेटअप

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें
```html

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
```                

ब्लॉग

पुस्तक अनुशंसाएँ