
コンテンツ分析、ヘッダーチェック、ベイジアンスコアリング、DNSブロックリストを用いてスパムやフィッシングを検出するオープンソースのメールフィルタリングフレームワーク。
Apache SpamAssassinプロジェクトは、開発プロセスにsubversionリポジトリを使用しています。リポジトリの読み取り専用ミラーがGitHub上でここに維持されています。
このREADMEファイルを含む.githubディレクトリは、Apache SpamAssassinリリースパッケージの一部ではありません。このディレクトリ内のファイルは、GitHubがホストするランナー上でGitHubのActions機能を使用してテストを実行するために、開発者が使用することを意図しています。
Apache SpamAssassinプロジェクト管理委員会は、ビルドとテストを実行するためにGitHubからApacheソフトウェア財団に割り当てられたリソースを使用する取り決めを行っていません。このディレクトリで定義されているアクションは、SpamAssassinの現役開発者を含む誰でも、リポジトリの個人用GitHubフォークで実行できます。ただし、このリポジトリにファイルが含まれていることは、ソフトウェアの公式な公開リリースを構成するものではありません。
送信したワークフロー実行には、最初の3つの入力ボックスの値の有効な組み合わせごとに1つのジョブが含まれます。
4番目の入力ボックスでは、実行するテストを、make testコマンドラインのTEST_FILESで使用されるのと同じ形式で入力できます。空のままにすると、すべてのテストを実行します。
テストボックスに何が入力されても、SQLを使用するテストは、データベースにpostgresまたはmysqlが指定されているジョブでのみ実行されます。また、spamdストレステストとrootテストは決して実行されません。
GitHubには、さまざまなプラットフォームで同時に実行できるジョブ数に制限があります。送信したジョブがその制限を超えている場合、他のジョブが終了すると開始されるようにキューに入れられます。
左側のサイドバーにリストされているジョブをクリックすると、ジョブのログ出力を表示するペインが開きます。エラーで終了したジョブには赤いXアイコンが表示されます。詳細についてはログ出力を確認できます。一部のエラーでは、t/logディレクトリの内容がアーティファクトとしてzip圧縮され、ダウンロードできます。ログペインを表示しているときに、左側のサイドバーの上にある Summary アイコンをクリックします。ダウンロードするアーティファクトがある場合は、Artifacts 見出しの下にクリックできる番号が表示されます。
実行されるジョブ数は、3つの入力ボックスで指定したオプションの積になります。新しいリリースを準備しているリリースマネージャーであれば、perlの可能なすべてのバージョンでSpamAssassinをテストしたいかもしれませんが、そうでなければ、おそらく最近のperlのバージョンを1つだけ選択したいでしょう。
ランナーのオプションボックスには「-latest」という名前だけが表示されますが、GitHubが提供する任意のホストランナー(例: ubuntu-20.04 や macos-11)を入力できます。
WindowsはStrawberry Perlを使用してテストされます。Strawberry Perlの最新リリースは5.32です。perlバージョンリストに34または36が含まれている場合、それらはWindowsプラットフォームではジョブを生成しません。
データベースオプションがpostgresまたはmysqlのジョブは、さまざまなSQLテストのみを実行します。データベースオプションがnoneのジョブは、他のすべてのテストを実行します。
一部のテスト、特にt/dnsbl.tのようなネットワークアクセスに依存するテストは、特に多くのジョブを同時に実行している場合に、時折失敗するように見えます。ワークフローのすべてのジョブが完了した後、ジョブの概要ページで Re-run jobs ボタンをクリックし、Re-run failed jobs を選択すると、失敗したジョブだけを再実行できます。断続的な失敗と思われるジョブがすべて正常にパスするまで繰り返します。