JavaScript के लिए CI/CD और GitHub Actions का परिचय
Node.js पर आधुनिक JavaScript अनुप्रयोगों के विकास के लिए न केवल गुणवत्तापूर्ण कोड की आवश्यकता होती है, बल्कि उपयोगकर्ताओं तक कोड पहुँचाने की एक विश्वसनीय प्रक्रिया भी आवश्यक है। CI/CD (Continuous Integration / Continuous Deployment) प्रथाओं का एक समूह है जो कोड के बिल्ड, परीक्षण और तैनाती को स्वचालित करता है। CI/CD को लागू करने के लिए सबसे लोकप्रिय टूल में से एक GitHub Actions है - GitHub प्लेटफ़ॉर्म पर कार्यप्रवाह स्वचालन की एक अंतर्निहित प्रणाली।
इस लेख में, हम विस्तार से समझेंगे कि GitHub Actions का उपयोग करके JavaScript (Node.js) प्रोजेक्ट के लिए CI/CD कैसे सेटअप करें। आप सीखेंगे कि पाइपलाइन कैसे बनाएं, परीक्षण चलाएं, लिंटिंग करें, प्रोजेक्ट बिल्ड करें और इसे स्वचालित रूप से सर्वर या क्लाउड होस्टिंग पर डिप्लॉय करें। यह सामग्री शुरुआती डेवलपर्स और अनुभवी इंजीनियरों दोनों के लिए उपयोगी होगी जो विकास प्रक्रिया को अनुकूलित करना चाहते हैं।
GitHub Actions की मूल बातें: संरचना और सिंटैक्स
GitHub Actions आपके रिपॉजिटरी की .github/workflows निर्देशिका में संग्रहीत YAML फ़ाइलों पर आधारित है। ऐसी प्रत्येक फ़ाइल एक या अधिक वर्कफ़्लो (workflow) को परिभाषित करती है, जो विशिष्ट घटनाओं जैसे push, pull request, रिलीज़ निर्माण आदि पर ट्रिगर होते हैं।
वर्कफ़्लो की मूल संरचना में शामिल हैं:
- name — पाइपलाइन का नाम;
- on — वह घटना जो निष्पादन को ट्रिगर करती है;
- jobs — कार्यों का सेट जो क्रमिक या समानांतर रूप से निष्पादित होते हैं;
- steps — प्रत्येक कार्य के अंदर चरण (कमांड, क्रियाएँ)।
Node.js प्रोजेक्ट के लिए एक न्यूनतम उदाहरण देखें:
name: Node.js CI
on: push: branches: [ main ] pull_request: branches: [ main ]
jobs: build: runs-on: ubuntu-latest
steps: - uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' - run: npm ci - run: npm testइस उदाहरण में, हम अंतर्निहित actions का उपयोग करते हैं: रिपॉजिटरी को क्लोन करने के लिए actions/checkout और Node.js के आवश्यक संस्करण को स्थापित करने के लिए actions/setup-node। कमांड npm ci package-lock.json के अनुसार सख्ती से निर्भरताएँ स्थापित करता है, और npm test परीक्षण चलाता है।
परीक्षण और लिंटिंग की सेटअप
JavaScript प्रोजेक्ट के लिए एक गुणवत्तापूर्ण CI/CD पाइपलाइन में मानकों के अनुपालन के लिए कोड की जाँच और स्वचालित परीक्षण शामिल होना चाहिए। आइए लोकप्रिय टूल का उपयोग करके एक उन्नत उदाहरण देखें: लिंटिंग के लिए ESLint, परीक्षण के लिए Jest और फ़ॉर्मेटिंग के लिए Prettier।
प्रोजेक्ट में आवश्यक निर्भरताएँ जोड़ें:
npm install --save-dev eslint jest prettier eslint-config-prettierएक कॉन्फ़िगरेशन फ़ाइल .eslintrc.json बनाएं:
{ "env": { "node": true, "es2021": true, "jest": true }, "extends": ["eslint:recommended", "prettier"], "parserOptions": { "ecmaVersion": "latest", "sourceType": "module" }, "rules": { "no-console": "warn", "semi": ["error", "always"] }}अब वर्कफ़्लो फ़ाइल अपडेट करें:
name: Lint and Test
on: push: branches: [ main, develop ] pull_request: branches: [ main ]
jobs: quality: runs-on: ubuntu-latest
steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm'
- name: Install dependencies run: npm ci
- name: Run linter run: npx eslint .
- name: Check formatting run: npx prettier --check .
- name: Run tests run: npm test
- name: Upload test coverage