Panoramica
Per creare un’estensione robusta per Discourse, può essere saggio includere l’Integrazione Continua (CI) nel tuo plugin o componente di tema. Questo aiuterà a rilevare gli errori in anticipo e ridurrà la probabilità di bug nel tuo codice.
Configurare un flusso di lavoro CI utilizzando GitHub Actions per automatizzare build e test è un approccio utilizzato dal team di Discourse per tutti i nostri componenti, e ti consigliamo di fare lo stesso.
Configurazione
Per aggiungere flussi di lavoro automatizzati per GitHub Actions, è necessario creare una cartella .github/workflows nella directory principale del tuo repository.
All’interno della cartella workflows puoi definire un insieme di automazioni che GitHub Actions dovrà eseguire. Ad esempio, potrebbero trattarsi di file .yml per linting e test.
Abbiamo creato flussi di lavoro modello sia per i plugin che per i componenti di tema che puoi utilizzare. Questi si collegano alle nostre definizioni di ‘flusso di lavoro riutilizzabile’ qui.
Nel repository modello su GitHub, puoi fare clic sul pulsante Usa questo modello per creare un repository di plugin/componente di tema basato sul modello.
In alternativa, se hai già un progetto a cui desideri aggiungere i flussi di lavoro, copia semplicemente il flusso di lavoro pertinente nella cartella .github/workflows/ del tuo repository:
Plugin: discourse-plugin.yml
Temi e Componenti di Tema: discourse-theme.yml
Questi modelli sono vincolati a una specifica versione principale dei nostri flussi di lavoro riutilizzabili. I piccoli miglioramenti che apportiamo ai flussi di lavoro avranno effetto automatico nel tuo tema/plugin. Per le modifiche di rottura (ad esempio, l’introduzione di un nuovo linter), aumenteremo la versione principale dei flussi di lavoro riutilizzabili e dovrai aggiornare il tuo flusso di lavoro per puntare alla nuova versione.
Ecco fatto! Sei pronto! Basta creare un commit o una PR al tuo repository e GitHub Actions rileverà automaticamente i flussi di lavoro e inizierà a eseguire i job.
GitHub Actions mostrerà un riepilogo di ogni test e, dopo l’esecuzione, indicherà un
o un
a seconda che il test sia riuscito o fallito.
Se un test è fallito, facendo clic sui dettagli otterrai alcune informazioni su cosa è andato storto, il che potrebbe darti indizi su cosa non va nel tuo codice e su cosa deve essere corretto.
Aggiungi i tuoi test
Perché i test dei plugin e dei componenti funzionino efficacemente, è importante che tu scriva test per il tuo plugin o componente di tema.
Per i dettagli su come scrivere test front-end con EmberJS, consulta:
- Write acceptance tests and component tests for Ember code in Discourse
- Introduction - Testing - Ember Guides
Per ulteriori dettagli sulla scrittura di test RSpec con Rails, consulta:
Esempi
Per tua comodità, abbiamo selezionato alcuni esempi di plugin e componenti di tema che hanno test robusti integrati:
| Plugin / Componente | Test lato client | Test lato server |
|---|---|---|
| Assign | ||
| Calendar | ||
| Reactions | ||
| Right Sidebar Blocks | ||
| Tag Icons | ||
| Table Builder |
Questo documento è sottoposto a controllo delle versioni - suggerisci modifiche su github.
