Swift परियोजनाओं के लिए CI/CD: GitHub Actions चरण-दर-चरण मार्गदर्शिका

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

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

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

परिचय: Swift परियोजनाओं के लिए CI/CD की आवश्यकता क्यों है?



iOS और macOS के तहत विकास के लिए उच्च कोड संस्कृति और विश्वसनीयता की आवश्यकता होती है। प्रत्येक परिवर्तन बिल्ड को तोड़ सकता है या परीक्षणों में प्रतिगमन का कारण बन सकता है। मैन्युअल जाँच एक धीमी और अविश्वसनीय प्रक्रिया है। यहीं पर CI/CD (Continuous Integration / Continuous Deployment) — सतत एकीकरण और वितरण — मदद के लिए आता है।



GitHub Actions आपके रिपॉजिटरी में सीधे वर्कफ़्लो को स्वचालित करने के लिए एक शक्तिशाली और अंतर्निहित उपकरण है। यह आपको प्रत्येक पुश या Pull Request बनाने पर स्वचालित रूप से प्रोजेक्ट बनाने, परीक्षण चलाने, कोड का विश्लेषण करने और यहाँ तक कि App Store या TestFlight में ऐप प्रकाशित करने की अनुमति देता है।



इस लेख में, हम GitHub Actions पर Swift प्रोजेक्ट के लिए एक पूर्ण CI/CD पाइपलाइन सेट अप करने का तरीका समझेंगे। आप सीखेंगे कि वर्कफ़्लो कैसे बनाएं, बिल्ड, टेस्ट रन, लिंटिंग और डिप्लॉय कैसे सेट करें। सभी कोड उदाहरण उपयोग के लिए तैयार हैं।



मुख्य भाग



1. Swift के लिए GitHub Actions की मूल बातें



GitHub Actions YAML फ़ाइलों पर आधारित है, जो .github/workflows/ निर्देशिका में संग्रहीत होती हैं। प्रत्येक फ़ाइल एक या अधिक वर्कफ़्लो का वर्णन करती है। Swift प्रोजेक्ट के लिए, हमें macOS वाले runner की आवश्यकता होगी, क्योंकि iOS/macOS ऐप्स का बिल्ड केवल इस प्लेटफ़ॉर्म पर ही संभव है।



Swift प्रोजेक्ट के लिए मूल वर्कफ़्लो इस प्रकार दिखता है:



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: Build run: swift build

- name: Run tests run: swift test


आइए मुख्य बिंदुओं को समझें:

  • on — ट्रिगर: main में push और pull request पर चलना।
  • runs-on: macos-latest — runner के लिए macOS के नवीनतम संस्करण का उपयोग करें।
  • actions/checkout — रिपॉजिटरी को क्लोन करने के लिए मानक action।
  • swift build और swift test — Swift Package Manager के कमांड।


यह न्यूनतम पाइपलाइन पहले से ही बुनियादी जाँच सुनिश्चित करती है। लेकिन वास्तविक iOS/macOS ऐप के लिए यह पर्याप्त नहीं है — Xcode, सिम्युलेटर और निर्भरताओं को कॉन्फ़िगर करने की आवश्यकता है।



2. iOS/macOS ऐप के लिए बिल्ड और परीक्षण सेटअप



यदि आपका प्रोजेक्ट Xcode (जैसे, .xcworkspace या .xcodeproj) का उपयोग करता है, तो swift build कमांड काम नहीं करेगा। इसके बजाय हम xcodebuild का उपयोग करते हैं। साथ ही, स्कीम और destination (जैसे, iPhone सिम्युलेटर) निर्दिष्ट करना आवश्यक है।



iOS ऐप के लिए वर्कफ़्लो का उदाहरण:



name: iOS CI

on: push: branches: [ "develop", "main" ] pull_request: branches: [ "develop", "main" ]

jobs: test: runs-on: macos-14

steps: - uses: actions/checkout@v4

- name: Select Xcode version run: sudo xcode-select -s /Applications/Xcode_15.2.app

- name: Install CocoaPods (यदि उपयोग कर रहे हैं) run: pod install

- name: Build and Test run: | xcodebuild clean test \ -workspace YourApp.xcworkspace \ -scheme "YourApp Scheme" \ -destination 'platform=iOS Simulator,name=iPhone 15,OS=17.2' \ -resultBundlePath TestResults env: DEVELOPER_DIR: /Applications/Xcode_15.2.app/Contents/Developer

- name: Upload test results if: always() uses: actions/upload-artifact@v4 with: name: test-results path: TestResults.xcresult


महत्वपूर्ण विवरण:

  • macos-14 — Xcode 15.2 के साथ macOS 14 Sonoma का उपयोग करें।
  • xcode-select — असंगति से बचने के लिए Xcode संस्करण स्पष्ट रूप से निर्दिष्ट करें।
  • resultBundlePath — आगे के विश्लेषण के लिए परीक्षण परिणामों को आर्टिफैक्ट के रूप में सहेजें।

ब्लॉग

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