أساسيات الدمج المستمر

يُعد الدمج المستمر (CI) من الممارسات لتطوير البرامج، حيث يدمج مطوّرو البرامج تغييرات الرموز البرمجية بشكل متكرر في مستودع مركزي، وبعد ذلك يتم إجراء الإصدارات والاختبارات الآلية.

يمكنك إعداد نظام CI أساسي لمنع التغييرات الجديدة التي من شأنها أن تؤدي إلى كسر البنية بعد الدمج. يمكنك برمجة نظام CI أكثر تقدمًا لاختبار التطبيق تلقائيًا والتأكد من أنه يعمل كما هو متوقع في البيئات المختلفة، مثل مستويات واجهة برمجة التطبيقات وأحجام الشاشة والأنظمة الأساسية.

مخطّط بياني يوضّح كيفية طلب عدة مطوّرين لتغيير الرموز البرمجية وكيف يتحقّق نظام CI من هذه التغييرات قبل دمجها في مستودع الرموز الرئيسية
الشكل 1. يحافظ نظام CI في مستودع الرموز البرمجية من خلال إجراء عمليات تحقّق قبل الدمج.

يوضح هذا المستند الاستراتيجيات الشائعة التي يستخدمها المطورون لإعداد أنظمة CI فعالة لمشروعات Android. هذه الإرشادات عامة وتنطبق على غالبية الحلول.

مثال نموذجي

يتّبع نظام CI النموذجي سير العمل أو مسار العمل، والذي قد يبدو على النحو التالي:

  1. يرصد نظام CI تغييرًا في الرمز البرمجي، عادةً عندما ينشئ المطوّر طلب سحب، يُسمى أيضًا "قائمة التغيير" أو "طلب الدمج".
  2. يوفر الخدمة خادمًا ويهيئه لتشغيل سير العمل.
  3. وهو يجلب الرموز بالإضافة إلى أدوات مثل حزمة تطوير البرامج (SDK) لنظام التشغيل Android أو صور المحاكي عند الحاجة.
  4. تنشئ المشروع المشروع من خلال تنفيذ أمر معين، على سبيل المثال /gradlew build..
  5. ينفّذ الاختبارات المحلية من خلال تنفيذ أمر معيّن، على سبيل المثال تشغيل /gradlew test.
  6. وتشغِّل هذه التطبيقات المحاكيات وتجري الاختبارات المعدّة.
  7. فهي تحمِّل عناصر مثل نتائج الاختبار وحِزم APK.
مخطَّط يوضّح سير عمل CI الأساسي
الشكل 2. سير عمل أساسي في CI

مزايا CI

تشمل مزايا CI ما يلي:

  • جودة البرامج المحسّنة: يمكن أن تساعد أداة CI في تحسين جودة البرامج من خلال تحديد المشاكل وحلّها في وقت مبكر. ويمكن أن يساعد ذلك في الحدّ من عدد الأخطاء في إصدارات البرامج وتحسين تجربة المستخدم بشكل عام.
  • تقليل مخاطر تعطُّل الإصدارات: عند أتمتة عملية الإنشاء باستخدام أداة CI، يمكنك تجنُّب الإصدارات المعطلة بشكل أفضل من خلال حلّ المشاكل في وقت مبكر من العملية.
  • زيادة الثقة في الإصدارات: يمكن أن تساعد أداة CI في ضمان ثبات كل إصدار وجاهزيته للإنتاج. من خلال إجراء اختبارات آلية، يمكن لـ CI تحديد أي مشكلات محتملة قبل إصدارها للجمهور.
  • تحسين التواصل والتعاون: من خلال توفير مكان مركزي لمطوّري البرامج لمشاركة الرموز ونتائج الاختبارات، يمكن أن تساعد أداة CI في تسهيل العمل معًا لدى المطوّرين وأعضاء الفريق الآخرين وتتبُّع مستوى التقدّم.
  • زيادة الإنتاجية: يمكن أن يساعد CI في زيادة إنتاجية المطورين من خلال برمجة المهام التي قد تستغرق وقتًا طويلاً وتكون عرضة للأخطاء.

محتوى إضافي للقراءة

لمزيد من المعلومات حول كيفية استخدام الدمج الثابت لتحسين تطوير تطبيقك، اقرأ الصفحات التالية: