Das Apache SpamAssassin-Projekt verwendet für seinen Entwicklungsprozess ein Subversion-Repo. Ein schreibgeschützter Spiegel des Repos wird hier auf GitHub verwaltet.
Das .github-Verzeichnis, das diese README-Datei enthält, ist nicht Teil des Apache SpamAssassin-Release-Pakets. Die Dateien in diesem Verzeichnis sind für die Verwendung durch Entwickler zum Ausführen von Tests mithilfe der Aktionsfunktion von GitHub auf von GitHub gehosteten Läufern vorgesehen.
Das Apache SpamAssassin Project Management Committee hat keine Vereinbarungen getroffen, die von GitHub der Apache Software Foundation zugewiesenen Ressourcen zum Ausführen von Builds und Tests zu verwenden. Die in diesem Verzeichnis definierten Aktionen stehen jedem, einschließlich aktiven Entwicklern von SpamAssassin, zur Ausführung in seinem persönlichen GitHub-Fork des Repos zur Verfügung. Die Aufnahme der Dateien in dieses Repository stellt jedoch keine formelle Freigabe der Software für die Öffentlichkeit dar.
Der von Ihnen übermittelte Workflow-Lauf verfügt über einen Job für jede gültige Wertekombination aus den ersten drei Eingabefeldern.
Im vierten Eingabefeld können Sie die auszuführenden Tests eingeben. Dabei handelt es sich um dasselbe Format, das für TEST_FILES in einer Make-Test-Befehlszeile verwendet wird. Wenn es leer bleibt, bedeutet dies, dass alle Tests ausgeführt werden.
Unabhängig davon, was im Testfeld eingegeben wird, werden die Tests, die SQL verwenden, nur in den Jobs ausgeführt, für die Postgres oder MySQL als Datenbank angegeben ist. Außerdem werden die Spamd-Stresstests und Root-Tests nie ausgeführt.
Bei GitHub ist die Anzahl der Jobs, die Sie gleichzeitig auf den verschiedenen Plattformen ausführen können, begrenzt. Von Ihnen eingereichte Aufträge, die diesen Grenzwert überschreiten, werden in die Warteschlange gestellt, damit sie gestartet werden können, während andere Aufträge abgeschlossen werden.
Wenn Sie auf einen in der linken Seitenleiste aufgeführten Job klicken, wird ein Bereich geöffnet, in dem die Protokollausgabe des Jobs angezeigt wird. Ein Job, der mit Fehlern endet, wird mit einem roten X-Symbol gekennzeichnet. Einzelheiten finden Sie in der Protokollausgabe. Einige Fehler führen dazu, dass der Inhalt des t/log-Verzeichnisses als Artefakt komprimiert wird, das Sie herunterladen können. Wenn Sie den Protokollbereich anzeigen, klicken Sie auf das Zusammenfassungssymbol über der linken Seitenleiste. Wenn Artefakte heruntergeladen werden müssen, finden Sie unter der Überschrift „Artefakte“ eine Nummer, auf die Sie klicken können.
Die Anzahl der ausgeführten Jobs ist das Produkt der Optionen, die Sie in den drei Eingabefeldern angeben. Sofern Sie SpamAssassin nicht auf jeder möglichen Perl-Version testen möchten, was möglicherweise der Fall ist, wenn Sie als Release-Manager eine neue Version vorbereiten, möchten Sie wahrscheinlich nur eine aktuelle Perl-Version auswählen.
Das Optionsfeld für Läufer zeigt nur die „-latest“-Namen an, aber Sie können jeden von GitHub gehosteten Läufer eingeben, den sie zur Verfügung stellen, z. B. ubuntu-20.04 oder macos-11.
Windows wird mit Strawberry Perl getestet, dessen neueste Version 5.32 ist. Wenn Sie 34 oder 36 in der Perl-Versionsliste haben, werden diese keine Jobs auf der Windows-Plattform generieren.
Jobs, die mit der Datenbankoption postgres oder mysql ausgeführt werden, führen nur die verschiedenen SQL-Tests aus. Jobs, die mit der Option „Keine“ für die Datenbank ausgeführt werden, führen alle anderen Tests aus.
Einige Tests, insbesondere solche, die auf Netzwerkzugriff angewiesen sind, wie z. B. t/dnsbl.t, scheinen gelegentlich fehlzuschlagen, insbesondere wenn Sie viele Jobs gleichzeitig ausführen. Nachdem alle Jobs eines Workflows abgeschlossen wurden, können Sie nur diejenigen erneut ausführen, die fehlgeschlagen sind, indem Sie auf der Übersichtsseite für die Jobs auf die Schaltfläche „Jobs erneut ausführen“ klicken und dann „Fehlgeschlagene Jobs erneut ausführen“ auswählen. Wiederholen Sie diesen Vorgang, bis Jobs, bei denen es scheinbar nur zeitweise zu Fehlern kommt, erfolgreich abgeschlossen wurden.