نظرة عامة
لبناء إضافة قوية لـ Discourse، قد يكون من الحكمة تضمين التكامل المستمر (CI) في الإضافة أو مكوّن القالب الخاص بك. سيساعدك ذلك على اكتشاف الأخطاء مبكرًا وتقليل احتمالية وجود أخطاء برمجية في الكود الخاص بك.
إنشاء سير عمل CI باستخدام GitHub Actions لأتمتة عمليات البناء والاختبار هو نهج يتبعه فريق Discourse في جميع مكوّناتنا، وننصحك باتباع نفس النهج.
الإعداد
لإضافة سير عمل آلي لـ GitHub actions للكشف، تحتاج إلى إنشاء مجلد .github/workflows في المجلد الجذري (root) لمستودعك.
داخل مجلد workflows، يمكنك تحديد مجموعة من الأتمتات التي ستحتاج GitHub actions إلى تشغيلها. على سبيل المثال، يمكن أن تكون هذه ملفات .yml للتحقق من صحة الكود (linting) والاختبارات.
لقد أنشأنا قوالب سير عمل لكل من الإضافات ومكوّنات القوالب والتي يمكنك الاستفادة منها. تربط هذه القوالب بتعريفات “سير العمل القابلة لإعادة الاستخدام” الخاصة بنا هنا.
في مستودع القالب (skeleton) على GitHub، يمكنك النقر على زر Use this template لإنشاء مستودع إضافة/مكوّن قالب بناءً على القالب.
وبدلاً من ذلك، إذا كان لديك مشروع بالفعل وتريد إضافة سير العمل إليه، فقم ببساطة بنسخ سير العمل ذي الصلة إلى مجلد .github/workflows/ في مستودعك:
الإضافات: discourse-plugin.yml
القوالب ومكوّنات القوالب: discourse-theme.yml
هذه القوالب مقفلة على إصدار رئيسي (major version) محدد من سير عملنا القابلة لإعادة الاستخدام. أي تحسينات صغيرة نقوم بها على سير العمل ستدخل حيز التنفيذ تلقائيًا في قالبك/إضافتك. بالنسبة للتغييرات التي تكسر التوافق (مثل إدخال أداة فحص جديدة)، سنقوم بترقية الإصدار الرئيسي لسير العمل القابلة لإعادة الاستخدام، وستحتاج إلى تحديث سير عملك ليشير إلى الإصدار الجديد.
ها هو ذا! لقد أكملت الإعداد! ببساطة، أنشئ التزامًا (commit) أو PR لمستودعك، وستقوم GitHub actions بالكشف التلقائي عن سير العمل والبدء في تشغيل المهام.
ستعرض GitHub actions تفصيلًا لكل اختبار، وبعد تشغيله ستشير إما إلى
أو
اعتمادًا على ما إذا نجح الاختبار أم فشل.
إذا فشل اختبار، فسيمنحك النقر على التفاصيل بعض المعلومات حول ما الذي فشل، مما قد يمنحك تلميحات حول ما الذي قد يكون خاطئًا في كودك وما الذي يحتاج إلى إصلاح.
أضف اختباراتك الخاصة
لكي تعمل اختبارات الإضافات والمكوّنات بشكل فعال، من المهم أن تكتب اختبارات لإضافتك أو مكوّن القالب الخاص بك.
لتفاصيل حول كيفية كتابة اختبارات الواجهة الأمامية باستخدام EmberJS، راجع:
- Write acceptance tests and component tests for Ember code in Discourse
- Introduction - Testing - Ember Guides
لمزيد من التفاصيل حول كتابة اختبارات RSpec مع Rails، راجع:
أمثلة
لمنفعتك، قمنا باختيار بعض الأمثلة لإضافات ومكوّنات قوالب التي لديها بعض الاختبارات القوية المتكاملة:
| الإضافة / المكوّن | اختبارات جانب العميل | اختبارات جانب الخادم |
|---|---|---|
| Assign | ||
| Calendar | ||
| Reactions | ||
| Right Sidebar Blocks | ||
| Tag Icons | ||
| Table Builder |
هذا المستند خاضع للتحكم بالإصدار - اقترح تغييرات على github.
