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