نظرة عامة
لبناء امتداد قوي لـ Discourse، قد يكون من الحكمة دمج التكامل المستمر (CI) في إضافة أو مكون السمة الخاص بك. سيساعد ذلك في اكتشاف الأخطاء مبكرًا وتقليل فرص وجود أخطاء في الكود الخاص بك.
إن إعداد سير عمل CI باستخدام إجراءات GitHub لأتمتة عمليات البناء والاختبار هو نهج يتبعه فريق Discourse في جميع مكوناتنا، ونوصيك بالقيام بنفس الشيء.
الإعداد
لإضافة سير عمل أوتوماتيكي لإجراءات GitHub للكشف، تحتاج إلى إنشاء مجلد .github/workflows في المجلد الجذري لمستودعك.
داخل مجلد workflows، يمكنك تعريف مجموعة من الأتمتة التي ستحتاج إجراءات GitHub إلى تشغيلها. على سبيل المثال، يمكن أن تكون هذه ملفات .yml للتحقق من الكود (linting) والاختبارات.
لقد أنشأنا سير عمل قوالب لكل من الإضافات و مكونات السمات والتي يمكنك الاستفادة منها. ترتبط هذه التعريفات بـ “سير العمل القابل لإعادة الاستخدام” الخاص بنا هنا.
في مستودع الهيكل القالب على GitHub، يمكنك النقر فوق زر استخدام هذا القالب لإنشاء مستودع لإضافة/مكون سمة بناءً على القالب.
بدلاً من ذلك، إذا كان لديك مشروع تريد إضافة سير العمل إليه، فقم ببساطة بنسخ سير العمل ذي الصلة إلى مجلد .github/workflows/ في مستودعك:
الإضافات: discourse-plugin.yml
السمات ومكونات السمات: discourse-theme.yml
هذه القوالب مقيدة بإصدار رئيسي محدد من سير العمل القابل لإعادة الاستخدام الخاص بنا. التحسينات الصغيرة التي نجريها على سير العمل ستدخل حيز التنفيذ تلقائيًا في سمة/إضافة الخاص بك. بالنسبة للتغييرات الجوهرية (مثل إدخال أداة تحقق جديدة)، سنقوم بزيادة الإصدار الرئيسي لسير العمل القابل لإعادة الاستخدام، وستحتاج إلى تحديث سير العمل الخاص بك للإشارة إلى الإصدار الجديد.
تفضل! أنت جاهز تمامًا! ببساطة، قم بإنشاء التزام (commit) أو PR إلى مستودعك، وستقوم إجراءات GitHub بالكشف التلقائي عن سير العمل وبدء تشغيل المهام.
ستعرض إجراءات GitHub تفصيلًا لكل اختبار، وبعد التشغيل ستشير إما إلى
أو
اعتمادًا على ما إذا كان الاختبار قد نجح أم فشل.
إذا فشل اختبار، فإن النقر على التفاصيل سيعطيك بعض المعلومات حول ما فشل، مما قد يمنحك أدلة حول ما الخطأ في كودك وما يحتاج إلى إصلاح.
أضف اختباراتك الخاصة
لكي تعمل اختبارات الإضافات والمكونات بفعالية، من المهم أن تكتب اختبارات لإضافة أو مكون السمة الخاص بك.
لمزيد من التفاصيل حول كيفية كتابة اختبارات الواجهة الأمامية باستخدام 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.
