Apache SpamAssassin 项目使用一个 subversion 仓库进行开发。该仓库的只读镜像托管在 GitHub 此处。
包含本 README 文件的 .github 目录并非 Apache SpamAssassin 发布包的一部分。该目录中的文件旨在供开发人员使用 GitHub 托管的运行器上的 GitHub Actions 功能来运行测试。
Apache SpamAssassin 项目管理委员会尚未就使用 GitHub 分配给 Apache 软件基金会的资源来运行构建和测试做出任何安排。此目录中定义的操作可供任何人(包括 SpamAssassin 的活跃开发人员)在其个人 GitHub 仓库分支中运行。但是,将这些文件包含在此仓库中并不构成向公众正式发布该软件。
您提交的工作流运行将为前三个输入框中的每个有效值组合生成一个任务。
第四个输入框允许您输入要运行的测试,格式与 make test 命令行中 TEST_FILES 使用的格式相同。如果留空,则表示运行所有测试。
无论测试框中输入什么内容,使用 SQL 的测试只会在数据库指定为 postgres 或 mysql 的任务中运行。此外,spamd 压力测试和 root 测试永远不会运行。
GitHub 对您在不同平台上可同时运行的任务数量有限制。您提交的超过该限制的任务将排队,待其他任务完成后启动。
点击左侧边栏中列出的任务将打开一个窗格,显示该任务的日志输出。以错误结束的任务将带有红色 X 图标。您可以查看日志输出以了解详细信息。某些错误会导致 t/log 目录内容被压缩为可供下载的构件。当您查看日志窗格时,点击左侧边栏上方的 Summary 图标,如果有任何构件可供下载,在 Artifacts 标题下会有一个可点击的数字。
运行的任务数量是您在前三个输入框中指定的选项的乘积。除非您想在每个可能的 perl 版本上测试 SpamAssassin(如果您是准备新版本的发布经理,可能会这样做),否则您可能只想选择一个最新的 perl 版本。
运行器的选项框仅显示“-latest”名称,但您可以输入他们提供的任何 GitHub 托管运行器,例如 ubuntu-20.04 或 macos-11。
Windows 使用 Strawberry Perl 进行测试,其最新版本是 5.32。如果您的 perl 版本列表中有 34 或 36,它们不会在 Windows 平台上生成任务。
使用数据库选项 postgres 或 mysql 运行的任务将只运行各种 sql 测试。使用数据库 none 选项运行的任务将运行所有其他测试。
有些测试,尤其是依赖网络访问的测试(如 t/dnsbl.t),似乎偶尔会失败,尤其是当您同时运行许多任务时。在工作流的所有任务完成后,您可以只重新运行那些失败的任务,方法是点击任务概览页面中的 Re-run jobs 按钮,然后选择 Re-run failed jobs。重复此操作,直到那些似乎只是间歇性失败的任务成功通过。