CI/CD का परिचय Java प्रोजेक्ट्स के लिए GitHub Actions के साथ
आधुनिक सॉफ्टवेयर विकास बिल्ड, परीक्षण और डिप्लॉयमेंट प्रक्रियाओं के ऑटोमेशन के बिना असंभव है। CI/CD (Continuous Integration / Continuous Deployment) — यह प्रथाओं का एक सेट है जो टीमों को प्रोडक्शन में बदलाव जल्दी और सुरक्षित रूप से पहुंचाने की अनुमति देता है। Java प्रोजेक्ट्स के लिए सबसे सुविधाजनक टूल्स में से एक है GitHub Actions — एक अंतर्निहित CI/CD सिस्टम जिसे अलग सर्वर सेटअप करने की आवश्यकता नहीं होती है।
इस लेख में, हम समझेंगे कि Java एप्लिकेशन के लिए पाइपलाइन कैसे सेटअप करें: कंपाइलेशन और टेस्ट चलाने से लेकर आर्टिफैक्ट प्रकाशित करने तक। आप सीखेंगे कि एक विश्वसनीय डिलीवरी प्रक्रिया बनाने के लिए Maven, JUnit और GitHub Actions का उपयोग कैसे करें।
1. GitHub Actions की मूल बातें: workflow की संरचना
GitHub Actions workflow के आधार पर काम करता है — YAML प्रारूप में कॉन्फ़िगरेशन फ़ाइलें, जो .github/workflows फ़ोल्डर में संग्रहीत होती हैं। प्रत्येक workflow में एक या अधिक jobs होते हैं, जो वर्चुअल मशीनों (runners) पर निष्पादित होते हैं।
Java प्रोजेक्ट के लिए एक सामान्य workflow में निम्नलिखित चरण शामिल होते हैं:
- Checkout — रिपॉजिटरी को क्लोन करना
- Setup JDK — Java के आवश्यक संस्करण को स्थापित करना
- Cache — बिल्ड को गति देने के लिए Maven/Gradle निर्भरताओं को कैश करना
- Build & Test — कंपाइलेशन और टेस्ट चलाना
- Deploy — आर्टिफैक्ट प्रकाशित करना (वैकल्पिक)
Java 17 और Maven के लिए एक बुनियादी कॉन्फ़िगरेशन उदाहरण देखें:
name: Java CI with Maven
on: push: branches: [ "main" ] pull_request: branches: [ "main" ]
jobs: build: runs-on: ubuntu-latest
steps: - uses: actions/checkout@v4 - name: Set up JDK 17 uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' cache: maven
- name: Build with Maven run: mvn -B package --file pom.xml
- name: Run tests run: mvn test
- name: Upload JAR artifact uses: actions/upload-artifact@v4 with: name: app-jar path: target/*.jarयह workflow प्रत्येक push या pull request पर main ब्रांच में चलता है। यह प्रोजेक्ट को बिल्ड करता है, टेस्ट चलाता है और JAR फ़ाइल को एक आर्टिफैक्ट के रूप में सहेजता है।
2. उन्नत सेटअप: परीक्षण और कोड गुणवत्ता
साधारण बिल्ड तो केवल शुरुआत है। वास्तविक प्रोजेक्ट्स में कोड की गुणवत्ता को नियंत्रित करना महत्वपूर्ण है। आइए workflow में स्थैतिक विश्लेषण और रिपोर्ट जनरेशन के लिए चरण जोड़ें।
पहले, टेस्ट के साथ कोड कवरेज मापने के लिए JaCoCo को कनेक्ट करें। pom.xml में प्लगइन जोड़ें:
<plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.11</version> <executions> <execution> <goals><goal>prepare-agent</goal></goals> </execution> <execution> <id>report</id> <phase>test</phase> <goals><goal>report</goal></goals> </execution> </executions></plugin>अब, कवरेज जांच और रिपोर्ट प्रकाशन जोड़कर workflow अपडेट करें:
- name: Run tests with coverage run: mvn verify
- name: Upload JaCoCo report uses: actions/upload-artifact@v4 with: name: coverage-report path: target/site/jacoco/आप लिंटर Checkstyle या SpotBugs भी जोड़ सकते हैं। Checkstyle के लिए उदाहरण:
- name: Checkstyle run: mvn checkstyle:checkये चरण स्वचालित रूप से कोड में समस्याओं का पता लगाने में मदद करेंगे।
```