JavaScript परियोजनाओं के लिए CI/CD: GitHub Actions A से Z तक

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

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

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

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

\n\n

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

\n\n

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

\n\n

इस लेख में, हम सीखेंगे कि GitHub Actions का उपयोग करके JavaScript (Node.js) प्रोजेक्ट के लिए एक पूर्ण CI/CD पाइपलाइन कैसे सेटअप करें: कॉन्फ़िगरेशन लिखने से लेकर डिप्लॉय तक। आप जानेंगे कि विकास को कैसे तेज़ करें, कोड की गुणवत्ता कैसे बढ़ाएँ और नियमित कार्यों को कैसे भूलें।

\n\n

मुख्य भाग: GitHub Actions के साथ CI/CD पाइपलाइन बनाना

\n\n

1. GitHub Actions क्या है और यह कैसे काम करता है?

\n\n

GitHub Actions वर्कफ़्लो को स्वचालित करने का एक प्लेटफ़ॉर्म है, जो रिपॉजिटरी में घटनाओं (push, pull request, issue बनाना आदि) के जवाब में चलता है। Workflow वर्चुअल मशीनों (runners) पर निष्पादित चरणों का एक सेट है। प्रत्येक चरण स्क्रिप्ट चला सकता है, निर्भरताएँ स्थापित कर सकता है या बाहरी सेवाओं को कॉल कर सकता है।

\n\n

मुख्य अवधारणाएँ:

\n
    \n
  • Workflow — YAML कॉन्फ़िगरेशन फ़ाइल, जो .github/workflows/ फ़ोल्डर में संग्रहीत होती है।
  • \n
  • Event — ट्रिगर जो workflow शुरू करता है (उदाहरण के लिए, push या pull_request)।
  • \n
  • Job — एक runner पर निष्पादित चरणों का सेट (निर्भरताएँ, परीक्षण, बिल्ड)।
  • \n
  • Step — एक अलग कमांड या क्रिया (action)।
  • \n
\n\n

JavaScript परियोजनाओं के लिए, हम Ubuntu के साथ मानक runner का उपयोग करेंगे, क्योंकि यह Node.js को बॉक्स से बाहर सपोर्ट करता है।

\n\n

2. बुनियादी सेटअप: परीक्षण और लिंटिंग

\n\n

आइए परीक्षण और लिंटिंग के लिए एक सरल workflow बनाकर शुरू करें। अपने रिपॉजिटरी की जड़ में .github/workflows/ci.yml फ़ाइल बनाएँ।

\n\n

Node.js प्रोजेक्ट के लिए कॉन्फ़िगरेशन का उदाहरण:

\n\n
name: CI for Node.js\n\non:\n  push:\n    branches: [ main, develop ]\n  pull_request:\n    branches: [ main ]\n\njobs:\n  test:\n    runs-on: ubuntu-latest\n\n    strategy:\n      matrix:\n        node-version: [18.x, 20.x]\n\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v4\n\n      - name: Setup Node.js ${{ matrix.node-version }}\n        uses: actions/setup-node@v4\n        with:\n          node-version: ${{ matrix.node-version }}\n          cache: 'npm'\n\n      - name: Install dependencies\n        run: npm ci\n\n      - name: Run linter\n        run: npm run lint\n\n      - name: Run tests\n        run: npm test
\n\n

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

\n
    \n
  • Matrix strategy — Node.js के कई संस्करणों (18.x और 20.x) पर समानांतर रूप से परीक्षण चलाने की अनुमति देता है।
  • \n
  • actions/checkout — रिपॉजिटरी को क्लोन करने के लिए मानक क्रिया।
  • \n
  • actions/setup-node — Node.js का आवश्यक संस्करण स्थापित करता है और गति के लिए node_modules कैशिंग सक्षम करता है।
  • \n
  • npm ci — package-lock.json से निर्भरताओं की स्वच्छ स्थापना (npm install से तेज़ और अधिक विश्वसनीय)।
  • \n
\n\n

इस फ़ाइल को रिपॉजिटरी में पुश करने के बाद, GitHub Actions स्वचालित रूप से परीक्षण चलाएगा। आप अपने रिपॉजिटरी के "Actions" अनुभाग में परिणाम देखेंगे।

\n\n

3. Docker इमेज बनाना और प्रकाशित करना

\n\n

ए

ब्लॉग

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