Configurare l'Integrazione Continua usando GitHub Actions

:mag: Panoramica

Per creare un’estensione robusta per Discourse, è consigliabile includere l’Integrazione Continua (CI) nel tuo plugin o componente tematico. Questo aiuterà a individuare gli errori in anticipo e a ridurre le possibilità di bug nel tuo codice.

L’impostazione di un flusso di lavoro di CI utilizzando 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.

:gear: 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 tematici che puoi utilizzare. Questi si collegano alle nostre definizioni di “flusso di lavoro riutilizzabile” qui.

Nel repository modello del template, su GitHub puoi fare clic sul pulsante Usa questo modello per creare un repository di plugin/componente tematico 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:

:electric_plug: Plugin: discourse-plugin.yml

:jigsaw: Temi e Componenti Tematici: discourse-theme.yml

:point_up: Questi modelli sono bloccati a una specifica versione principale dei nostri flussi di lavoro riutilizzabili. Piccoli miglioramenti che apportiamo ai flussi di lavoro avranno effetto automatico nel tuo tema/plugin. Per modifiche che introducono incompatibilitĂ  (ad es. introducendo 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.

:tada: Fatto! Sei pronto! Semplicemente, crea un commit o una richiesta di pull (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à un :white_check_mark: o un :x: a seconda che il test sia passato o fallito.

Se un test è fallito, facendo clic sui dettagli otterrai alcune informazioni su cosa è fallito, il che potrebbe darti indizi su cosa c’è di sbagliato nel tuo codice e cosa deve essere corretto.

Vedi esempio

:white_check_mark: Aggiungi i tuoi test

Affinché i test dei plugin e dei componenti funzionino in modo efficace, è importante che tu scriva test per il tuo plugin o componente tematico.

Per i dettagli su come scrivere test front-end con EmberJS, consulta:

Per maggiori dettagli sulla scrittura di test RSpec con Rails, consulta:

:bulb: Esempi

A tuo beneficio, abbiamo selezionato un paio di esempi di plugin e componenti tematici che hanno integrato test robusti:


Questo documento è controllato in versione - suggerisci modifiche su github.

15 Mi Piace