Le projet Apache SpamAssassin utilise un dépôt Subversion pour son processus de développement. Un miroir en lecture seule du dépôt est conservé sur GitHub ici.
Le répertoire .github contenant ce fichier README ne fait pas partie du package de version Apache SpamAssassin. Les fichiers de ce répertoire sont destinés à être utilisés par les développeurs pour exécuter des tests à l'aide de la fonction Actions de GitHub sur les exécuteurs hébergés par GitHub.
Le comité de gestion du projet Apache SpamAssassin n'a pris aucune disposition pour utiliser les ressources allouées à Apache Software Foundation par GitHub pour exécuter des builds et des tests. Les actions définies dans ce répertoire peuvent être exécutées par tous, y compris les développeurs actifs de SpamAssassin, dans leur fork GitHub personnel du dépôt. Cependant, l'inclusion des fichiers dans ce référentiel ne constitue pas une mise à disposition formelle du logiciel au public.
L'exécution du flux de travail que vous soumettez comportera une tâche 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, dans le même format que celui utilisé pour TEST_FILES dans une ligne de commande make test. Si laissé vide, cela signifie exécuter tous les tests.
Peu importe ce qui est entré dans la zone tests, les tests qui utilisent SQL ne seront exécutés que dans les tâches pour lesquelles Postgres ou MySQL sont spécifiés pour la base de données. De plus, les tests de stress spamd et les tests racine ne sont jamais exécutés.
GitHub impose des limites quant au nombre de tâches que vous pouvez exécuter simultanément sur les différentes plateformes. Les tâches que vous soumettez et qui dépassent cette limite seront mises en file d'attente pour être démarrées à la fin des autres tâches.
Cliquer sur une tâche répertoriée dans la barre latérale gauche ouvrira un volet affichant la sortie du journal de la tâche. Un travail qui se termine par des erreurs aura une icône X 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 en tant qu'artefact que vous pourrez télécharger. Lorsque vous consultez le volet de journal, cliquez sur l'icône Résumé au-dessus de la barre latérale gauche. S'il y a des artefacts à télécharger, il y aura un numéro sur lequel vous pourrez cliquer sous la rubrique Artefacts .
Le nombre de tâches exécutées est le produit des options que vous spécifiez dans les trois zones de saisie. À moins que vous souhaitiez tester SpamAssassin sur toutes les versions possibles de Perl, ce que vous pourriez faire si vous êtes le gestionnaire de versions préparant une nouvelle version, vous souhaiterez probablement sélectionner une seule version récente de Perl.
La boîte d'options pour les coureurs affiche uniquement les noms "-latest", mais vous pouvez saisir n'importe quel coureur hébergé par GitHub qu'ils mettent à disposition, par exemple ubuntu-20.04 ou macos-11.
Windows est testé avec Strawberry Perl, dont la dernière version est la 5.32. Si vous en avez 34 ou 36 dans la liste des versions Perl, elles ne généreront pas de jobs sur la plateforme Windows.
Les travaux exécutés à l'aide de l'option de base de données postgres ou mysql exécuteront uniquement les différents tests SQL. Les travaux exécutés à l'aide de l'option none pour la base de données exécuteront tous les autres tests.
Certains tests, en particulier ceux qui reposent sur l'accès réseau comme t/dnsbl.t, semblent échouer de temps en temps, notamment lorsque vous exécutez plusieurs tâches simultanément. Une fois que toutes les tâches d'un workflow sont terminées, vous pouvez réexécuter uniquement celles qui ont échoué en cliquant sur le bouton Réexécuter les tâches dans la page de présentation des tâches, puis en sélectionnant Réexécuter les tâches ayant échoué . Répétez jusqu'à ce que les tâches qui semblent n'être que des échecs intermittents soient réussies.