Übersicht
Um eine robuste Erweiterung für Discourse zu erstellen, ist es ratsam, Continuous Integration (CI) in Ihr Plugin oder Theme-Komponente zu integrieren. Dies hilft, Fehler frühzeitig zu erkennen und die Wahrscheinlichkeit von Bugs in Ihrem Code zu verringern.
Die Einrichtung eines mit GitHub Actions automatisierten Workflows für Builds und Tests ist ein Ansatz, den das Discourse-Team bei allen unseren Komponenten verfolgt, und wir empfehlen Ihnen, dasselbe zu tun.
Einrichtung
Um automatisierte Workflows für GitHub Actions zur Erkennung hinzuzufügen, müssen Sie im Stammverzeichnis Ihres Repositorys einen Ordner namens .github/workflows erstellen.
Innerhalb des workflows-Ordners können Sie eine Reihe von Automatisierungen definieren, die GitHub Actions ausführen soll. Dies könnten beispielsweise .yml-Dateien für Linting und Tests sein.
Wir haben Vorlagen-Workflows sowohl für Plugins als auch für Theme-Komponenten erstellt, die Sie verwenden können. Diese verbinden sich mit unseren „wiederverwendbaren Workflow“-Definitionen hier.
Im Skeleton-Repository der Vorlage können Sie auf GitHub auf die Schaltfläche Use this template klicken, um ein Plugin-/Theme-Komponenten-Repository basierend auf der Vorlage zu erstellen.
Alternativ, wenn Sie bereits ein Projekt haben, zu dem Sie die Workflows hinzufügen möchten, kopieren Sie einfach den relevanten Workflow in den Ordner .github/workflows/ Ihres Repositorys:
Plugins: discourse-plugin.yml
Themes und Theme Components: discourse-theme.yml
Diese Vorlagen sind an eine bestimmte Hauptversion unserer wiederverwendbaren Workflows gebunden. Kleine Verbesserungen, die wir an den Workflows vornehmen, werden automatisch in Ihrem Theme/Plugin wirksam. Bei Breaking Changes (z. B. Einführung eines neuen Linters) erhöhen wir die Hauptversion der wiederverwendbaren Workflows, und Sie müssen Ihren Workflow aktualisieren, um auf die neue Version zu verweisen.
Voila! Sie sind fertig! Erstellen Sie einfach einen Commit oder einen PR in Ihrem Repository, und GitHub Actions erkennt die Workflows automatisch und beginnt mit der Ausführung der Jobs.
GitHub Actions zeigt eine Aufschlüsselung jedes Tests an und gibt nach der Ausführung entweder ein
oder
an, je nachdem, ob der Test bestanden oder fehlgeschlagen ist.
Wenn ein Test fehlgeschlagen ist, erhalten Sie durch Klicken auf die Details einige Informationen darüber, was fehlgeschlagen ist, was Hinweise darauf geben kann, was mit Ihrem Code nicht stimmt und was behoben werden muss.
Eigene Tests hinzufügen
Damit Plugin- und Komponenten-Tests effektiv funktionieren, ist es wichtig, dass Sie Tests für Ihr Plugin oder Ihre Theme-Komponente schreiben.
Details zum Schreiben von Frontend-Tests mit EmberJS finden Sie unter:
- Write acceptance tests and component tests for Ember code in Discourse
- Introduction - Testing - Ember Guides
Weitere Details zum Schreiben von RSpec-Tests mit Rails finden Sie unter:
Beispiele
Zu Ihrem Vorteil haben wir einige Beispiele für Plugins und Theme-Komponenten ausgewählt, die robuste Tests integriert haben:
| Plugin / Komponente | Clientseitige Tests | Serverseitige Tests |
|---|---|---|
| Assign | ||
| Calendar | ||
| Reactions | ||
| Right Sidebar Blocks | ||
| Tag Icons | ||
| Table Builder |
Dieses Dokument wird versioniert – Änderungen hier vorschlagen auf github.
