نظرة عامة
لبناء إضافة قوية لـ Discourse، قد يكون من الحكمة تضمين التكامل المستمر (CI) في المكون الإضافي (plugin) أو مكون السمة (theme-component) الخاص بك. سيساعد هذا في اكتشاف الأخطاء مبكرًا وتقليل فرص وجود أخطاء في التعليمات البرمجية الخاصة بك.
يعد إعداد سير عمل \u003cabbr title="التكامل المستمر"\u003eCI\u003c/abbr\u003e باستخدام GitHub Actions لأتمتة عمليات البناء والاختبار هو النهج الذي يستخدمه فريق Discourse في جميع مكوناتنا، ونوصي بأن تفعل الشيء نفسه.
الإعداد
لإضافة سير عمل آلي لاكتشافه بواسطة إجراءات GitHub، تحتاج إلى إنشاء مجلد .github/workflows في الدليل الجذر للمستودع الخاص بك.
داخل مجلد workflows، يمكنك تحديد مجموعة من الأتمتات التي ستحتاج إجراءات GitHub إلى تشغيلها. على سبيل المثال، يمكن أن تكون هذه ملفات .yml للتحقق من الأسلوب (linting) والاختبارات.
لقد أنشأنا قوالب سير عمل لكل من المكونات الإضافية و مكونات السمة التي يمكنك الاستفادة منها. تتصل هذه القوالب بتعريفات “سير العمل القابل لإعادة الاستخدام” الخاصة بنا هنا.
في مستودع الهيكل الخاص بالقالب، يمكنك النقر على زر \u003ckbd\u003eاستخدام هذا القالب\u003c/kbd\u003e على GitHub لإنشاء مستودع مكون إضافي/مكون سمة بناءً على القالب.
بدلاً من ذلك، إذا كان لديك مشروع بالفعل تود إضافة سير العمل إليه، فما عليك سوى نسخ سير العمل ذي الصلة إلى مجلد .github/workflows/ في المستودع الخاص بك:
المكونات الإضافية (Plugins): discourse-plugin.yml
السمات ومكونات السمة (Themes and Theme Components): discourse-theme.yml
\u003e
يتم تثبيت هذه القوالب على إصدار رئيسي محدد من سير العمل القابل لإعادة الاستخدام. التحسينات الصغيرة التي نجريها على سير العمل ستدخل حيز التنفيذ تلقائيًا في السمة/المكون الإضافي الخاص بك. بالنسبة للتغييرات الكاسرة (مثل إدخال أداة تدقيق أسلوب جديدة)، سنقوم بزيادة الإصدار الرئيسي لسير العمل القابل لإعادة الاستخدام، وستحتاج إلى تحديث سير العمل الخاص بك للإشارة إلى الإصدار الجديد.
فويلا! لقد انتهيت من الإعداد! ببساطة، قم بإنشاء التزام (commit) أو \u003cabbr title="طلب سحب"\u003ePR\u003c/abbr\u003e إلى المستودع الخاص بك وستكتشف إجراءات 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 |
\u003csmall\u003eهذا المستند يتم التحكم في إصداره - اقترح تغييرات على github.\u003c/small\u003e
\u003c!-- START DOCS ASSET MAP
[
{
"local_path": "/assets/ci-with-github-actions-1.png",
"local_sha1": "c3fb59eeb13645670b751959d13cdf8e423e0fcf",
"remote_short_url": "upload://imziUfvg1AloA7IQ5jXMyn85Ngu.png"
}
]
END DOCS ASSET MAP –\u003e
