Vue d’ensemble
Pour créer une extension robuste pour Discourse, il peut être judicieux d’intégrer l’Intégration Continue (CI) à votre plugin ou composant de thème. Cela aidera à détecter les erreurs tôt et réduira les chances de bugs dans votre code.
La mise en place d’un flux de travail CI à l’aide de GitHub Actions pour automatiser les builds et les tests est une approche utilisée par l’équipe Discourse pour tous nos composants, et nous vous recommandons de faire de même.
Mise en place
Pour ajouter des flux de travail automatisés pour GitHub actions afin de détecter les problèmes, vous devez créer un dossier .github/workflows dans le répertoire racine de votre dépôt.
À l’intérieur du dossier workflows, vous pouvez définir un ensemble d’automatisations que GitHub actions devra exécuter. Par exemple, il pourrait s’agir de fichiers .yml pour le linting et les tests.
Nous avons créé des modèles de flux de travail pour les plugins et les composants de thème que vous pouvez utiliser. Ceux-ci se connectent à nos définitions de « flux de travail réutilisables » ici.
Dans le dépôt squelette du modèle, sur GitHub, vous pouvez cliquer sur le bouton Utiliser ce modèle pour créer un dépôt de plugin/composant de thème basé sur le modèle.
Alternativement, si vous avez déjà un projet auquel vous souhaitez ajouter les flux de travail, copiez simplement le flux de travail pertinent dans le dossier .github/workflows/ de votre dépôt :
Plugins : discourse-plugin.yml
Thèmes et Composants de Thème : discourse-theme.yml
Ces modèles sont verrouillés sur une version majeure spécifique de nos flux de travail réutilisables. Les petites améliorations que nous apportons aux flux de travail prendront automatiquement effet dans votre thème/plugin. Pour les modifications cassantes (par exemple, l’introduction d’un nouveau linter), nous augmenterons la version majeure des flux de travail réutilisables, et vous devrez mettre à jour votre flux de travail pour pointer vers la nouvelle version.
Et voilà ! Tout est en place ! Il suffit de créer un commit ou une PR vers votre dépôt et GitHub actions détectera automatiquement les flux de travail et commencera à exécuter les tâches.
GitHub actions affichera un détail de chaque test et, après son exécution, indiquera soit
ou
selon que le test a réussi ou échoué.
Si un test a échoué, cliquer sur les détails vous donnera quelques informations sur ce qui a échoué, ce qui peut vous donner des indices sur ce qui ne va pas dans votre code et ce qui doit être corrigé.
Ajoutez vos propres tests
Pour que les tests de plugins et de composants fonctionnent efficacement, il est important que vous écriviez des tests pour votre plugin ou composant de thème.
Pour plus de détails sur la manière d’écrire des tests front-end avec EmberJS, voir :
- Write acceptance tests and component tests for Ember code in Discourse
- Introduction - Testing - Ember Guides
Pour plus de détails sur l’écriture de tests RSpec avec Rails, voir :
Exemples
Pour votre bénéfice, nous avons sélectionné quelques exemples de plugins et de composants de thème qui intègrent des tests robustes :
| Plugin / Composant | Tests Côté Client | Tests Côté Serveur |
|---|---|---|
| Assign | ||
| Calendar | ||
| Reactions | ||
| Right Sidebar Blocks | ||
| Tag Icons | ||
| Table Builder |
Ce document est sous contrôle de version - suggérez des modifications sur github.
