
Framework open source de filtrage d'e-mails qui détecte le spam et le phishing grâce à l'analyse de contenu, aux vérifications d'en-têtes, au scoring bayésien et aux listes de blocage DNS.
Le projet Apache SpamAssassin utilise un dépôt subversion pour son processus de développement. Une copie en lecture seule du dépôt est maintenue sur GitHub ici.
Le répertoire .github contenant ce fichier README ne fait pas partie du paquet de distribution d'Apache SpamAssassin. Les fichiers de ce répertoire sont destinés aux développeurs pour exécuter des tests à l'aide de la fonctionnalité Actions de GitHub sur les runners hébergés par GitHub.
Le comité de gestion du projet Apache SpamAssassin n'a pris aucune disposition pour utiliser les ressources allouées à l'Apache Software Foundation par GitHub afin d'exécuter des builds et des tests. Les actions définies dans ce répertoire sont disponibles pour toute personne, y compris les développeurs actifs de SpamAssassin, afin de les exécuter dans leur fork GitHub personnel du dépôt. Cependant, l'inclusion des fichiers dans ce dépôt ne constitue pas une version officielle du logiciel au public.
L'exécution du workflow que vous soumettez aura un travail pour chaque combinaison valide de valeurs des trois premières zones de saisie.
La quatrième zone de saisie vous permet de saisir les tests à exécuter, au même format que celui utilisé pour TEST_FILES dans une ligne de commande make test. Si elle est laissée vide, cela signifie exécuter tous les tests.
Quelle que soit la saisie dans la zone des tests, les tests qui utilisent SQL ne seront exécutés que dans les travaux qui ont postgres ou mysql spécifié pour la base de données. De plus, les tests de stress spamd et les tests root ne sont jamais exécutés.
GitHub impose des limites sur le nombre de travaux que vous pouvez exécuter simultanément sur les différentes plateformes. Les travaux que vous soumettez et qui dépassent cette limite seront mis en file d'attente et démarrés au fur et à mesure que d'autres travaux se terminent.
Cliquer sur un travail listé dans la barre latérale gauche ouvrira un panneau affichant la sortie du journal du travail. Un travail qui se termine avec des erreurs aura une icône de croix rouge. Vous pouvez consulter la sortie du journal pour plus de détails. Certaines erreurs entraîneront la compression du contenu du répertoire t/log sous forme d'artefact que vous pouvez télécharger. Lorsque vous visualisez le panneau du journal, cliquez sur l'icône Summary au-dessus de la barre latérale gauche. S'il y a des artefacts à télécharger, un numéro sur lequel vous pouvez cliquer apparaîtra sous le titre Artifacts.
Le nombre de travaux exécutés est le produit des options que vous spécifiez dans les trois zones de saisie. À moins que vous ne souhaitiez tester SpamAssassin sur toutes les versions possibles de perl, ce que vous pourriez faire si vous êtes le gestionnaire de version préparant une nouvelle version, vous voudrez probablement sélectionner une seule version récente de perl.
La zone d'options pour les runners n'affiche que les noms "-latest", mais vous pouvez saisir n'importe quel runner hébergé par GitHub qu'ils mettent à disposition, par exemple ubuntu-20.04 ou macos-11.
Windows est testé à l'aide de Strawberry Perl, dont la dernière version est 5.32. Si vous avez 34 ou 36 dans la liste des versions de perl, ils ne généreront pas de travaux sur la plateforme Windows.
Les travaux exécutés avec l'option de base de données postgres ou mysql n'exécuteront que les différents tests sql. Les travaux exécutés avec l'option none pour la base de données exécuteront tous les autres tests.
Certains tests, en particulier ceux qui dépendent de l'accès réseau comme t/dnsbl.t, semblent échouer occasionnellement, surtout lorsque vous exécutez de nombreux travaux simultanément. Après que tous les travaux d'un workflow ont été terminés, vous pouvez réexécuter uniquement ceux qui ont échoué en cliquant sur le bouton Re-run jobs dans la page de vue d'ensemble des travaux, puis en sélectionnant Re-run failed jobs. Répétez jusqu'à ce que les travaux qui semblent n'échouer que par intermittence aient réussi.