परिचय: JavaScript प्रोजेक्ट्स के लिए CI/CD क्यों आवश्यक है
Node.js पर आधुनिक JavaScript एप्लिकेशन का विकास एक जटिल प्रक्रिया है जिसमें कोड लिखना, परीक्षण, बिल्ड और डिप्लॉयमेंट शामिल है। ऑटोमेशन के बिना, ये चरण मैन्युअल रूप से किए जाते हैं, जिससे त्रुटियाँ, देरी और उत्पाद की गुणवत्ता में कमी आती है। CI/CD (Continuous Integration / Continuous Delivery) एक DevOps प्रैक्टिस है जो कोड के बिल्ड, परीक्षण और डिप्लॉयमेंट को स्वचालित करती है।
GitHub Actions GitHub का एक अंतर्निहित टूल है जो कार्यों को स्वचालित करने के लिए वर्कफ़्लो (workflows) बनाने की अनुमति देता है। यह JavaScript प्रोजेक्ट्स के लिए आदर्श है क्योंकि यह Node.js, npm, Yarn और कई लोकप्रिय सेवाओं को सपोर्ट करता है। इस लेख में, हम समझेंगे कि GitHub Actions का उपयोग करके आपके JavaScript प्रोजेक्ट के लिए एक पूर्ण CI/CD पाइपलाइन कैसे सेट अप करें।
आप सीखेंगे: टेस्ट कैसे चलाएं, एप्लिकेशन कैसे बिल्ड करें, सर्वर या क्लाउड प्लेटफ़ॉर्म पर कैसे डिप्लॉय करें, और सामान्य गलतियों से कैसे बचें।
JavaScript के लिए GitHub Actions की मूल बातें
GitHub Actions क्या है?
GitHub Actions वर्कफ़्लो को स्वचालित करने का एक प्लेटफ़ॉर्म है। आप YAML फ़ाइल में चरणों का एक क्रम वर्णित करते हैं, जिसे रिपॉजिटरी में रखा जाता है (आमतौर पर .github/workflows/main.yml)। हर बार जब कोई इवेंट होता है (जैसे push, pull request), तो एक workflow शुरू होता है।
Workflow jobs (कार्यों) से बना होता है, जो runner (वर्चुअल मशीन) पर निष्पादित होते हैं। JavaScript प्रोजेक्ट्स के लिए, आमतौर पर Ubuntu runner का उपयोग किया जाता है, जिसमें Node.js पहले से इंस्टॉल होता है।
Node.js के लिए बेसिक workflow
चलिए एक सरल workflow से शुरू करते हैं जो प्रत्येक push या pull request पर टेस्ट चलाता है। फ़ाइल बनाएँ .github/workflows/ci.yml:
name: CI для JavaScript
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x, 18.x, 20.x]
steps:
- uses: actions/checkout@v4
- name: Использовать Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm ci
- run: npm test
- run: npm run build --if-present
यह workflow निम्नलिखित करता है:
- ट्रिगर: main/develop में push या main में pull request पर शुरू होता है।
- वर्जन मैट्रिक्स: Node.js 16, 18, 20 पर परीक्षण करता है — यह संगतता सुनिश्चित करता है।
- कैशिंग:
cache: 'npm'डिपेंडेंसी इंस्टॉलेशन को तेज़ करता है। - कमांड:
npm ci(क्लीन इंस्टॉल),npm test(टेस्ट),npm run build(बिल्ड, यदि मौजूद हो)।
पूर्ण CI/CD पाइपलाइन सेट अप करना
अब कार्य को जटिल बनाते हैं: लिंटिंग, सुरक्षा जाँच और सफल परीक्षण के बाद स्वचालित डिप्लॉयमेंट जोड़ें।
चरण 1: लिंटिंग और फ़ॉर्मेटिंग
ESLint और Prettier के लिए एक job जोड़ें। यह एक समान कोड शैली सुनिश्चित करता है:
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '18.x'
cache: 'npm'
- run: npm ci
- run: npm run lint
- run: npx prettier --check .
package.json में स्क्रिप्ट "lint" और "format" होनी चाहिए। उदाहरण:
{
"scripts": {
"lint": "eslint src/",
"format": "prettier --write ."
}
}
चरण 2: डिपेंडेंसी सुरक्षा
कमजोरियों की जाँच के लिए npm audit का उपयोग करें:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm audit --audit-level=high
यदि ```