Panoramica
Per creare un’estensione robusta per Discourse, è consigliabile includere l’Integrazione Continua (CI) nel tuo plugin o componente tema. Questo aiuterà a rilevare gli errori precocemente e a ridurre le possibilità di bug nel tuo codice.
L’impostazione di un flusso di lavoro di GitHub Actions per automatizzare build e test è un approccio che il team di Discourse utilizza su tutti i nostri componenti, e ti consigliamo di fare lo stesso.
Impostazione
Per aggiungere flussi di lavoro automatizzati che GitHub Actions possa rilevare, devi creare una cartella .github/workflows nella directory principale del tuo repository.
All’interno della cartella workflows puoi definire una serie di automazioni che GitHub Actions dovrà eseguire. Ad esempio, questi potrebbero essere file .yml per il linting e i test.
Abbiamo creato flussi di lavoro modello sia per i plugin che per i componenti tema che puoi utilizzare. Questi si collegano alle nostre definizioni di “flusso di lavoro riutilizzabile” qui.
Nel repository scheletro del modello, su GitHub puoi fare clic sul pulsante Use this template per creare un repository di plugin/componente 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 Tema: discourse-theme.yml
Questi modelli sono bloccati a una specifica versione principale dei nostri flussi di lavoro riutilizzabili. Piccoli miglioramenti che apportiamo ai flussi di lavoro verranno automaticamente applicati al tuo tema/plugin. Per modifiche che rompono la compatibilità (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! Crea semplicemente 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à una ripartizione di ogni test e, dopo l’esecuzione, indicherà
o
a seconda che il test sia superato o fallito.
Se un test è fallito, facendo clic sui dettagli otterrai alcune informazioni su ciò che è fallito, il che potrebbe darti indizi su cosa non va nel tuo codice e cosa deve essere corretto.
Aggiungi i tuoi test
Affinché i test dei plugin e dei componenti funzionino efficacemente, è importante che tu scriva test per il tuo plugin o componente 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 maggiori dettagli sulla scrittura di test RSpec con Rails, consulta:
Esempi
A tuo vantaggio, abbiamo selezionato un paio di esempi di plugin e componenti tema che hanno integrati test robusti:
| Plugin / Componente | Test Lato Client | Test Lato Server |
|---|---|---|
| Assign | ||
| Calendar | ||
| Reactions | ||
| Right Sidebar Blocks | ||
| Tag Icons | ||
| Table Builder |
Questo documento è controllato tramite versione - suggerisci modifiche su github.
