Visión general
Para crear una extensión robusta para Discourse, es aconsejable incluir la Integración Continua (CI) en tu componente de plugin o tema. Esto ayudará a detectar errores de forma temprana y a reducir las posibilidades de errores en tu código.
Configurar un flujo de trabajo de CI utilizando GitHub Actions para automatizar la compilación y las pruebas es un enfoque que el equipo de Discourse utiliza en todos nuestros componentes, y te recomendamos que hagas lo mismo.
Configuración
Para añadir flujos de trabajo automatizados para que GitHub Actions los detecte, necesitas crear una carpeta .github/workflows en el directorio raíz de tu repositorio.
Dentro de la carpeta workflows puedes definir un conjunto de automatizaciones que GitHub Actions necesitará ejecutar. Por ejemplo, estos podrían ser archivos .yml para linting y pruebas.
Hemos creado flujos de trabajo de plantilla tanto para plugins como para componentes de tema que puedes utilizar. Estos se conectan a nuestras definiciones de ‘flujo de trabajo reutilizable’ aquí.
En el repositorio de la plantilla, en GitHub puedes hacer clic en el botón Usar esta plantilla para crear un repositorio de plugin/componente de tema basado en la plantilla.
Alternativamente, si ya tienes un proyecto al que te gustaría añadir los flujos de trabajo, simplemente copia el flujo de trabajo relevante a la carpeta .github/workflows/ de tu repositorio:
Plugins: discourse-plugin.yml
Temas y Componentes de Tema: discourse-theme.yml
Estas plantillas están bloqueadas a una versión principal específica de nuestros flujos de trabajo reutilizables. Las pequeñas mejoras que hagamos en los flujos de trabajo se reflejarán automáticamente en tu tema/plugin. Para cambios disruptivos (por ejemplo, introducir un nuevo linter), incrementaremos la versión principal de los flujos de trabajo reutilizables y deberás actualizar tu flujo de trabajo para que apunte a la nueva versión.
¡Listo! ¡Ya está todo configurado! Simplemente, crea un commit o una PR en tu repositorio y GitHub Actions detectará automáticamente los flujos de trabajo y comenzará a ejecutar los trabajos.
GitHub Actions mostrará un desglose de cada prueba y, después de ejecutarla, indicará un
o un
dependiendo de si la prueba pasó o falló.
Si una prueba falló, al hacer clic en los detalles obtendrás información sobre lo que falló, lo que puede darte pistas sobre lo que está mal en tu código y lo que necesita ser arreglado.
Añade tus propias pruebas
Para que las pruebas de plugins y componentes funcionen eficazmente, es importante que escribas pruebas para tu plugin o componente de tema.
Para más detalles sobre cómo escribir pruebas de front-end con EmberJS, consulta:
- Write acceptance tests and component tests for Ember code in Discourse
- Introduction - Testing - Ember Guides
Para más detalles sobre cómo escribir pruebas RSpec con Rails, consulta:
Ejemplos
Para tu beneficio, hemos seleccionado un par de ejemplos de plugins y componentes de tema que tienen pruebas robustas integradas:
| Plugin / Component | Pruebas del lado del cliente | Pruebas del lado del servidor |
|---|---|---|
| Assign | ||
| Calendar | ||
| Reactions | ||
| Right Sidebar Blocks | ||
| Tag Icons | ||
| Table Builder |
Este documento está controlado por versiones - sugiere cambios en github.
