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

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

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

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

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



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



CI/CD क्या है और TypeScript डेवलपर को इसकी आवश्यकता क्यों है?



CI/CD एक पद्धति है जो दो अभ्यासों को जोड़ती है:

  • Continuous Integration (CI) - रिपॉजिटरी में प्रत्येक पुश पर कोड का स्वचालित बिल्ड और परीक्षण। यह बग और विरोधों को जल्दी पहचानने में मदद करता है।
  • Continuous Deployment/Delivery (CD) - परीक्षण सफल होने के बाद एप्लिकेशन का सर्वर या क्लाउड पर स्वचालित डिप्लॉयमेंट।


TypeScript प्रोजेक्ट्स के लिए CI/CD विशेष रूप से महत्वपूर्ण है, क्योंकि TypeScript JavaScript में कंपाइल होता है, और टाइप या कॉन्फ़िगरेशन में त्रुटियाँ केवल बिल्ड चरण में ही सामने आ सकती हैं। GitHub Actions GitHub का एक अंतर्निहित टूल है जो आपको सीधे रिपॉजिटरी में वर्कफ़्लो (workflows) बनाने की अनुमति देता है।



चरण 1: TypeScript प्रोजेक्ट के लिए बुनियादी workflow



सरल शुरुआत करते हैं - अपने प्रोजेक्ट की रूट में .github/workflows/ci.yml फ़ाइल बनाएँ। यह workflow main ब्रांच पर प्रत्येक पुश या Pull Request बनाने पर चलेगा।



name: CI Pipeline

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

jobs: build-and-test: runs-on: ubuntu-latest

strategy: matrix: node-version: [18.x, 20.x]

steps: - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: 'npm' - run: npm ci - run: npm run build --if-present - run: npm test - run: npm run lint --if-present


मुख्य बिंदुओं को समझते हैं:

  • actions/checkout - रिपॉजिटरी को runner में क्लोन करता है।
  • actions/setup-node - डिपेंडेंसी कैशिंग के साथ Node.js स्थापित करता है।
  • npm ci - डिपेंडेंसी की साफ़ स्थापना (npm install से तेज़)।
  • npm run build - TypeScript को JavaScript में कंपाइल करता है (सुनिश्चित करें कि package.json में build स्क्रिप्ट है)।
  • npm test - परीक्षण चलाता है (जैसे, Jest)।


strategy.matrix मैट्रिक्स आपको एक साथ Node.js के कई संस्करणों पर कोड का परीक्षण करने की अनुमति देता है - इससे संगतता में विश्वास बढ़ता है।



चरण 2: लिंटिंग और फ़ॉर्मेटिंग जोड़ना



कोड की गुणवत्ता CI का एक महत्वपूर्ण हिस्सा है। ESLint और Prettier के लिए चरण जोड़ें। सुनिश्चित करें कि वे प्रोजेक्ट में स्थापित हैं:



npm install --save-dev eslint prettier eslint-config-prettier


अपने workflow में नए चरण जोड़ें:



      - run: npm run lint      - run: npm run format:check


package.json में संबंधित स्क्रिप्ट होनी चाहिए:



{  "scripts": {    "lint": "eslint src --ext .ts",    "format:check": "prettier --check \\"src/**/*.ts\\"",    "format": "prettier --write \\"src/**/*.ts\\""  }}


अब प्रत्येक पुश पर GitHub Actions न केवल टाइप और परीक्षण, बल्कि कोड शैली की भी जाँच करेगा। यदि लिंटर को त्रुटियाँ मिलती हैं - पाइपलाइन विफल हो जाएगी, और डेवलपर को सूचना मिलेगी।



चरण 3: CD सेटअप - Vercel/Netlify पर स्वचालित डिप्लॉयमेंट



TypeScript प्रोजेक्ट्स के लिए अक्सर सर्वरलेस प्लेटफ़ॉर्म का उपयोग किया जाता है। Vercel पर डिप्लॉयमेंट पर विचार करें - यह एक है

ब्लॉग

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