Kotlin प्रोजेक्ट्स के लिए CI/CD: GitHub Actions A से Z तक

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

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

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

GitHub Actions के साथ Kotlin के लिए CI/CD का परिचय

आधुनिक डेवलपमेंट में, बिल्ड, टेस्टिंग और डिप्लॉयमेंट प्रक्रियाओं का ऑटोमेशन पेशेवर दृष्टिकोण का एक अभिन्न अंग बन गया है। Kotlin प्रोजेक्ट्स के लिए, चाहे वे Android ऐप्स हों, Ktor पर बैकएंड सर्विसेज़ हों, या मल्टीप्लेटफ़ॉर्म लाइब्रेरीज़ हों, CI/CD (Continuous Integration / Continuous Deployment) सेटअप करने से उत्पाद लॉन्च करने का समय काफी कम हो जाता है और त्रुटियों का जोखिम कम हो जाता है।

GitHub Actions एक शक्तिशाली और लचीला टूल है जो GitHub इकोसिस्टम में बिल्ट-इन है। यह आपको कस्टम पाइपलाइन बनाने की अनुमति देता है जो पुश, पुल रिक्वेस्ट बनाने या शेड्यूल पर स्वचालित रूप से चलती हैं। इस लेख में, हम Kotlin के लिए CI/CD सेटअप के पूरे चक्र को कवर करेंगे: बेसिक कोड चेकिंग से लेकर ऑटोमैटिक डिप्लॉय तक।



GitHub Actions की मूल बातें: संरचना और सिंटैक्स

Kotlin-विशिष्ट विवरणों में जाने से पहले, GitHub Actions की मूल अवधारणाओं को समझना महत्वपूर्ण है। पाइपलाइन को YAML फ़ाइलों में वर्णित किया जाता है, जो आपके रिपॉजिटरी की .github/workflows/ डायरेक्टरी में संग्रहीत होती हैं।



वर्कफ़्लो के प्रमुख तत्व

  • Event (ईवेंट): ट्रिगर जो पाइपलाइन शुरू करता है (push, pull_request, release, आदि)।
  • Job (जॉब): एक ही runner (वर्चुअल मशीन) पर निष्पादित चरणों का एक सेट।
  • Step (स्टेप): एक विशिष्ट क्रिया - कमांड निष्पादित करना, स्क्रिप्ट चलाना, या तैयार action का उपयोग करना।
  • Runner: निष्पादन वातावरण (Ubuntu, Windows, macOS)।


kotlin-ci.yml फ़ाइल की मूल संरचना:

name: Kotlin CI

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

jobs: build: runs-on: ubuntu-latest

steps: - uses: actions/checkout@v4 - name: Set up JDK 17 uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' - name: Build with Gradle run: ./gradlew build


Kotlin के लिए CI सेटअप: बिल्ड, टेस्ट और लिंटिंग

पहला और सबसे महत्वपूर्ण चरण सतत एकीकरण है। यह सुनिश्चित करता है कि प्रत्येक नया कोड कंपाइल हो और मौजूदा टेस्ट को न तोड़े।



Gradle डिपेंडेंसी कैशिंग

बिल्ड को गति देने के लिए, कैशिंग का उपयोग करना सुनिश्चित करें। इसके बिना, प्रत्येक रन सभी लाइब्रेरीज़ को फिर से डाउनलोड करेगा।

- name: Cache Gradle packages  uses: actions/cache@v3  with:    path: |      ~/.gradle/caches      ~/.gradle/wrapper    key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}    restore-keys: |      ${{ runner.os }}-gradle-


टेस्ट और स्टाइल चेक चलाना

यूनिट टेस्ट और लिंटर (detekt या ktlint) चलाने के लिए स्टेप जोड़ें। इससे कोड की गुणवत्ता बनाए रखने में मदद मिलती है।

- name: Run tests  run: ./gradlew test

- name: Run linter run: ./gradlew detekt


Kotlin प्रोजेक्ट के लिए पूर्ण CI वर्कफ़्लो का उदाहरण

jobs:  test:    runs-on: ubuntu-latest    steps:      - uses: actions/checkout@v4      - name: Set up JDK 17        uses: actions/setup-java@v4        with:          java-version: '17'          distribution: 'temurin'      - name: Cache Gradle        uses: actions/cache@v3        with:          path: ~/.gradle/caches          key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts') }}      - name: Build and test        run: ./gradlew check


Continuous Deployment: Kotlin ऐप्लिकेशन का ऑटोमैटिक डिप्लॉय

सफल एकीकरण के बाद, डिप्लॉय का चरण आता है। Kotlin प्रोजेक्ट्स के लिए, इसका मतलब Maven Central पर लाइब्रेरी प्रकाशित करना, सर्वर पर बैकएंड तैनात करना, या Android के लिए APK बनाना हो सकता है।



Ktor पर बैकएंड सर्विस का डिप्लॉय

मान लीजिए कि हमारे पास Ktor फ्रेमवर्क पर एक Kotlin ऐप्लिकेशन है। हम स्वचालित रूप से

ब्लॉग

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