JavaScript के लिए CI/CD पाइपलाइन: 10 चरणों में शुरू से सेटअप

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

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

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

मैन्युअल डिप्लॉय करना कैसे बंद करें और कमिट से न डरें

\n\n

क्या आप कभी शुक्रवार शाम को बैठे, प्रोडक्शन को देखते हुए सोचते हैं: "ठीक है, सब कुछ काम कर रहा है, लेकिन अगर मैं अभी बिल्ड चलाऊं तो क्या कुछ नहीं टूटेगा?" परिचित लगता है? मैन्युअल डिप्लॉय बिना प्रशिक्षक के पैराशूट से कूदने जैसा है: एड्रेनालाईन तो है, लेकिन अक्सर दर्दनाक अंत होता है।

\n\n

CI/CD पाइपलाइन आपकी स्वचालित सुरक्षा रस्सी है। यह खुद प्रोजेक्ट बनाएगा, टेस्ट चलाएगा, कोड की जांच करेगा और अगर सब ठीक है तो सर्वर पर अपडेट डिप्लॉय करेगा। कोई "अरे, मैं बिल्ड चलाना भूल गया" या "टेस्ट क्यों फेल हुए, जबकि लोकली काम कर रहे थे?" नहीं।

\n\n

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

\n\n

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

\n\n

आइए पहले शब्दों को समझ लें ताकि भ्रम न हो।

\n\n

Continuous Integration (CI) — सतत एकीकरण। इसका मतलब है कि आपका हर कमिट स्वचालित रूप से जांचा जाता है: कोड लिंटर, टेस्ट और बिल्ड से गुजरता है। अगर कुछ टूटता है, तो आपको एक हफ्ते के बजाय 2 मिनट में पता चल जाता है।

\n\n

Continuous Delivery (CD) — सतत वितरण। CI की सभी जांचें सफल होने के बाद तैयार कोड का सर्वर पर स्वचालित डिप्लॉयमेंट।

\n\n

JavaScript प्रोजेक्ट्स के लिए CI/CD विशेष रूप से महत्वपूर्ण है। क्यों? क्योंकि JS इकोसिस्टम में हजारों डिपेंडेंसी हैं जो कभी भी अपडेट हो सकती हैं और आपका कोड तोड़ सकती हैं। ऑटोमेशन ऐसे आश्चर्यों से बचाता है।

\n\n

हम क्या सेटअप करेंगे

\n
    \n
  • GitHub Actions — CI/CD के लिए मुफ्त टूल (अधिकांश प्रोजेक्ट्स के लिए पर्याप्त)
  • \n
  • लिंटर — कोड शैली की जांच (ESLint)
  • \n
  • टेस्ट — Jest का स्वचालित रन
  • \n
  • बिल्ड — प्रोजेक्ट बिल्ड (Webpack या Vite)
  • \n
  • डिप्लॉय — सर्वर या होस्टिंग पर स्वचालित अपलोड
  • \n
\n\n

चरण 1: प्रोजेक्ट तैयार करें

\n\n

मान लें कि आपके पास पहले से एक JavaScript प्रोजेक्ट है (React, Vue, Node.js — कोई फर्क नहीं पड़ता)। अगर नहीं है, तो परीक्षण के लिए एक सरल प्रोजेक्ट बनाएं:

\n\n
mkdir my-ci-cd-project\ncd my-ci-cd-project\nnpm init -y\nnpm install --save-dev jest eslint
\n\n

package.json में एक बेसिक स्क्रिप्ट जोड़ें:

\n\n
{\n  "scripts": {\n    "test": "jest",\n    "lint": "eslint src/",\n    "build": "webpack --mode production",\n    "deploy": "rsync -avz dist/ user@server:/var/www"\n  }\n}
\n\n

अब हमारे पास लोकल कमांड हैं जिन्हें CI/CD स्वचालित रूप से निष्पादित करेगा।

\n\n

चरण 2: GitHub Actions वर्कफ़्लो बनाएं

\n\n

GitHub Actions हमारी पाइपलाइन का दिमाग है। सब कुछ .github/workflows/ फ़ोल्डर में YAML फ़ाइलों द्वारा नियंत्रित होता है।

\n\n

फ़ाइल .github/workflows/ci-cd.yml बनाएं:

\n\n
name: CI/CD Pipeline\n\non:\n  push:\n    branches: [ main, develop ]\n  pull_request:\n    branches: [ main ]\n\njobs:\n  build-and-test:\n    runs-on: ubuntu-latest\n    \n    steps:\n    - uses: actions/checkout@v3\n    \n    - name: Setup Node.js\n      uses: actions/setup-node@v3\n      with:\n        node-version: '18'\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    - name: Build project\n      run: npm run build
\n\n

यहाँ क्या हो रहा है? main या develop में हर push पर GitHub Ubuntu के साथ एक वर्चुअल मशीन चलाता है, Node.js 18 स्थापित करता है, डिपेंडेंसी स्थापित करता है (npm ci के माध्यम से क्लीन इंस्टॉल — npm install से तेज़ और अधिक विश्वसनीय), लिंटर से कोड की जांच करता है, टेस्ट चलाता है और प्रोजेक्ट बनाता है।

\n\n

अगर कोई भी चरण विफल होता है — पाइपलाइन रुक जाएगी और आपको सूचना मिलेगी।

\n\n

चरण 3: लिंटर और टेस्ट जोड़ें

\n\n

ESLint और Jest JavaScript के लिए मानक हैं। आइए उन्हें कॉन्फ़िगर करें ता

ब्लॉग

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