
إطار عمل مفتوح المصدر لتصفية البريد الإلكتروني يكتشف البريد العشوائي والتصيد الاحتيالي باستخدام تحليل المحتوى، وفحوصات الترويسة، والتقييم البايزي، وقوائم حظر DNS.
يستخدم مشروع Apache SpamAssassin مستودع Subversion في عملية التطوير الخاصة به. تتم صيانة نسخة طبق الأصل للقراءة فقط من المستودع على GitHub هنا.
دليل .github الذي يحتوي على ملف README هذا ليس جزءًا من حزمة إصدار Apache SpamAssassin. الملفات في هذا الدليل مخصّصة للاستخدام من قبل المطوّرين لتشغيل الاختبارات باستخدام ميزة GitHub Actions على العدّائين المستضافين على GitHub.
لم تقم لجنة إدارة مشروع Apache SpamAssassin بأي ترتيبات لاستخدام الموارد المخصّصة لمؤسسة برمجيات Apache من قبل GitHub لتشغيل عمليات البناء والاختبار. إجراءات (Actions) المعرّفة في هذا الدليل متاحة لأي شخص، بما في ذلك المطوّرون النشطون في SpamAssassin، لتشغيلها في نسختهم الشخصية (fork) من المستودع على GitHub. ومع ذلك، فإن تضمين الملفات في هذا المستودع لا يُشكّل إصدارًا رسميًا للبرنامج للجمهور.
سيحتوي تشغيل سير العمل الذي تُرسله على مهمة واحدة لكل تركيبة صالحة من القيم من مربعات الإدخال الثلاثة الأولى.
يتيح لك مربع الإدخال الرابع إدخال الاختبارات التي سيتم تشغيلها، بنفس التنسيق المستخدم لـ TEST_FILES في سطر أمر make test. إذا تُرك فارغًا، فهذا يعني تشغيل جميع الاختبارات.
بغض النظر عن ما يُدخَل في مربع الاختبارات، فإن الاختبارات التي تستخدم SQL لن تُشغَّل إلا في المهام التي تحتوي على postgres أو mysql كقاعدة بيانات. أيضًا، لا يتم تشغيل اختبارات إجهاد spamd واختبارات الجذر (root) أبدًا.
لدى GitHub حدود لعدد المهام التي يمكنك تشغيلها في وقت واحد على المنصات المختلفة. المهام التي تُرسلها والتي تتجاوز هذا الحد ستوضع في قائمة انتظار لبدء تشغيلها عند انتهاء مهام أخرى.
النقر على مهمة مدرجة في الشريط الجانبي الأيسر سيفتح لوحة تعرض مخرجات سجل المهمة. المهمة التي تنتهي بأخطاء ستحتوي على أيقونة X حمراء. يمكنك فحص مخرجات السجل للحصول على التفاصيل. تؤدي بعض الأخطاء إلى ضغط محتويات دليل t/log كأداة (artifact) يمكنك تنزيلها. عندما تشاهد لوحة السجل، انقر على أيقونة Summary أعلى الشريط الجانبي الأيسر. إذا كانت هناك أي أدوات (artifacts) للتنزيل، فسيكون هناك رقم يمكنك النقر عليه تحت العنوان Artifacts.
عدد المهام التي يتم تشغيلها هو حاصل ضرب الخيارات التي تحددها في مربعات الإدخال الثلاثة. ما لم تكن تريد اختبار SpamAssassin على كل إصدار ممكن من perl، وهو ما قد تفعله إذا كنت مدير الإصدارات الذي يحضّر إصدارًا جديدًا، فمن المرجح أنك سترغب في تحديد إصدار حديث واحد فقط من perl.
مربع خيارات العدّائين يعرض فقط أسماء "-latest"، ولكن يمكنك إدخال أي عدّاء مستضاف على GitHub يوفرونه، مثل ubuntu-20.04 أو macos-11.
يتم اختبار Windows باستخدام Strawberry Perl، وأحدث إصدار له هو 5.32. إذا كان لديك 34 أو 36 في قائمة إصدارات perl، فلن تُنشئ هذه الإصدارات مهامًا على منصة Windows.
المهام التي يتم تشغيلها باستخدام خيار قاعدة البيانات postgres أو mysql ستشغّل اختبارات SQL المتنوعة فقط. المهام التي يتم تشغيلها باستخدام خيار none لقاعدة البيانات ستشغّل جميع الاختبارات الأخرى.
تبدو بعض الاختبارات، خاصة تلك التي تعتمد على الوصول إلى الشبكة مثل t/dnsbl.t، تفشل أحيانًا، خاصةً عند تشغيل العديد من المهام في وقت واحد. بعد اكتمال جميع مهام سير العمل، يمكنك إعادة تشغيل المهام الفاشلة فقط بالنقر على زر Re-run jobs في صفحة النظرة العامة للمهام، ثم تحديد Re-run failed jobs. كرّر ذلك حتى تجتاز المهام التي تبدو وكأنها إخفاقات متقطعة بالفعل.