परिचय: JavaScript परियोजनाओं के लिए CI/CD क्यों आवश्यक है
आधुनिक वेब डेवलपमेंट स्वचालन के बिना अकल्पनीय है। हर दिन JavaScript (Node.js) डेवलपर्स को नियमित कार्यों का सामना करना पड़ता है: परीक्षण चलाना, लिंटर से कोड की जाँच करना, एप्लिकेशन को बिल्ड और डिप्लॉय करना। इन कार्यों को मैन्युअल रूप से करने में न केवल समय लगता है, बल्कि इसमें त्रुटियों की भी संभावना होती है। यहीं पर CI/CD (Continuous Integration / Continuous Deployment) मदद करता है - यह एक पद्धति है जो सॉफ्टवेयर के जीवनचक्र के सभी चरणों को स्वचालित करने की अनुमति देती है।
GitHub Actions, GitHub प्लेटफॉर्म पर एक अंतर्निहित स्वचालन उपकरण है, जो CI/CD पाइपलाइन सेटअप करने के लिए एकदम सही है। इस लेख में, हम JavaScript (Node.js) प्रोजेक्ट के लिए शुरू से पूर्ण स्वचालन चक्र सेटअप करने पर चर्चा करेंगे: परीक्षण चलाने से लेकर सर्वर पर डिप्लॉय करने तक। आप सीखेंगे कि वर्कफ़्लो कैसे बनाएं, कॉन्फ़िगरेशन फ़ाइलें कैसे लिखें और सामान्य गलतियों से कैसे बचें।
GitHub Actions की मूल बातें: संरचना और घटक
कोड लिखने से पहले, आइए GitHub Actions की प्रमुख अवधारणाओं को समझें। पूरी पाइपलाइन YAML फ़ाइलों में वर्णित होती है, जो आपके रिपॉजिटरी की .github/workflows निर्देशिका में संग्रहीत होती हैं।
वर्कफ़्लो के प्रमुख तत्व
- Workflow - यह एक स्वचालित प्रक्रिया है जिसमें एक या अधिक Job (कार्य) शामिल होते हैं।
- Job - एक Runner (वर्चुअल मशीन) पर निष्पादित होने वाले चरणों (Step) का एक सेट।
- Step - एक अलग कमांड या क्रिया (Action)।
- Event - एक ट्रिगर जो वर्कफ़्लो शुरू करता है (जैसे, push, pull request)।
JavaScript परियोजनाओं के लिए एक मानक वर्कफ़्लो इस प्रकार दिखता है:
name: Node.js के लिए CI/CD
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: Node.js स्थापित करें uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} - name: निर्भरताएँ स्थापित करें run: npm ci - name: लिंटिंग run: npm run lint - name: परीक्षण run: npm teststrategy.matrix पर ध्यान दें - यह एक साथ Node.js के कई संस्करणों पर कोड का परीक्षण करने की अनुमति देता है, जो लाइब्रेरी और पैकेज के लिए महत्वपूर्ण है।
Node.js प्रोजेक्ट के लिए चरण-दर-चरण CI/CD सेटअप
Express.js पर एक सामान्य वेब एप्लिकेशन के लिए पाइपलाइन सेटअप करने का पूरा उदाहरण देखें। आइए मूल फ़ाइल .github/workflows/node-ci.yml से शुरू करें।
चरण 1: बुनियादी कोड जाँच
name: Node.js CI
on: push: branches: [ develop, main ] pull_request: branches: [ main ]
jobs: quality: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Node.js सेटअप करें uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm' - name: निर्भरताएँ स्थापित करें run: npm ci - name: कोड लिंट करें run: npm run lint - name: यूनिट परीक्षण चलाएँ run: npm run test:unit - name: प्रोजेक्ट बिल्ड करें run: npm run buildमुख्य बिंदु:
cache: 'npm'-node_modulesको कैश करता है, जिससे बाद के रन तेज़ हो जाते हैं।npm ci- निर्भरताओं की एक स्वच्छ स्थापना,npm installसे तेज़ और अधिक विश्वसनीय।- यूनिट और इंटीग्रेशन परीक्षणों को अलग करना (वैकल्पिक) तेज़ी से प्रतिक्रिया प्राप्त करने की अनुमति देता है।
चरण 2: डेटाबेस के साथ इंटीग्रेशन परीक्षण
वास्तविक डेटाबेस के साथ परीक्षण के लिए, GitHub Actions सेवाओं का उपयोग करें:
jobs: integration-tests: runs-on: ubuntu-latest