
Framework de código aberto para filtragem de e-mail que detecta spam e phishing usando análise de conteúdo, verificação de cabeçalhos, pontuação bayesiana e listas de bloqueio de DNS.
O projeto Apache SpamAssassin usa um repositório subversion para seu processo de desenvolvimento. Um espelho somente leitura do repositório é mantido no GitHub aqui.
O diretório .github que contém este arquivo README não faz parte do pacote de lançamento do Apache SpamAssassin. Os arquivos neste diretório destinam-se ao uso por desenvolvedores para executar testes usando o recurso Actions do GitHub em runners hospedados no GitHub.
O Comitê de Gerenciamento do Projeto Apache SpamAssassin não fez nenhum acordo para usar os recursos alocados à Apache Software Foundation pelo GitHub para executar builds e testes. As ações definidas neste diretório estão disponíveis para qualquer pessoa, incluindo desenvolvedores ativos do SpamAssassin, executá-las em seu fork pessoal do repositório no GitHub. No entanto, a inclusão dos arquivos neste repositório não constitui um lançamento formal do software ao público.
A execução do workflow que você enviar terá um job para cada combinação válida de valores das três primeiras caixas de entrada.
A quarta caixa de entrada permite inserir os testes a serem executados, no mesmo formato usado para TEST_FILES em uma linha de comando make test. Se deixada vazia, significa executar todos os testes.
Não importa o que seja inserido na caixa de testes, os testes que usam SQL só serão executados nos jobs que tenham postgres ou mysql especificado para o banco de dados. Além disso, os testes de estresse do spamd e os testes de root nunca são executados.
O GitHub tem limites no número de jobs que você pode executar simultaneamente nas várias plataformas. Os jobs que você enviar e que excederem esse limite ficarão na fila para serem iniciados quando outros jobs terminarem.
Clicar em um job listado na barra lateral esquerda abrirá um painel mostrando a saída de log do job. Um job que termina com erros terá um ícone de X vermelho. Você pode verificar a saída do log para obter detalhes. Alguns erros farão com que o conteúdo do diretório t/log seja compactado como um artefato que você pode baixar. Ao visualizar o painel de log, clique no ícone Summary acima da barra lateral esquerda. Se houver artefatos para baixar, haverá um número no qual você pode clicar sob o título Artifacts.
O número de jobs executados é o produto das opções que você especifica nas três caixas de entrada. A menos que você queira testar o SpamAssassin em todas as versões possíveis do perl, o que pode ser o caso se você for o gerente de lançamento preparando um novo lançamento, provavelmente desejará selecionar apenas uma versão recente do perl.
A caixa de opções para runners mostra apenas os nomes "-latest", mas você pode inserir qualquer runner hospedado no GitHub que eles disponibilizem, por exemplo, ubuntu-20.04 ou macos-11.
O Windows é testado usando o Strawberry Perl, cuja versão mais recente é a 5.32. Se você tiver 34 ou 36 na lista de versões do perl, eles não gerarão jobs na plataforma Windows.
Os jobs executados com a opção de banco de dados postgres ou mysql executarão apenas os vários testes sql. Os jobs executados com a opção none para banco de dados executarão todos os outros testes.
Alguns testes, especialmente alguns que dependem de acesso à rede, como t/dnsbl.t, parecem falhar ocasionalmente, especialmente quando você está executando muitos jobs simultaneamente. Depois que todos os jobs de um workflow forem concluídos, você pode reexecutar apenas aqueles que falharam clicando no botão Re-run jobs na página de visão geral dos jobs e selecionando Re-run failed jobs. Repita até que os jobs que parecem ser apenas falhas intermitentes tenham passado com sucesso.