CI/CD لمشاريع Java: إعداد GitHub Actions

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مقدمة إلى CI/CD لمشاريع Java باستخدام GitHub Actions

تطوير البرمجيات الحديث لا يمكن أن يتم بدون أتمتة عمليات البناء والاختبار والنشر. CI/CD (التكامل المستمر / النشر المستمر) هو مجموعة من الممارسات التي تتيح للفرق توصيل التغييرات إلى الإنتاج بسرعة وأمان. بالنسبة لمشاريع Java، واحدة من أكثر الأدوات ملاءمة هي GitHub Actions — نظام CI/CD مدمج لا يتطلب إعداد خادم منفصل.

في هذه المقالة، سنشرح كيفية إعداد pipeline لتطبيق 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

ستساعد هذه الخطوات في اكتشاف المشكلات تلقائيًا في

المدونات

توصيات الكتب