Resumen
Para crear una extensión robusta para Discourse, puede ser conveniente incluir la Integración Continua (CI) en tu plugin o componente de tema. Esto ayudará a detectar errores a tiempo y reducirá la probabilidad de que haya errores en tu código.
Configurar un flujo de trabajo de CI utilizando GitHub Actions para automatizar las compilaciones 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 agregar flujos de trabajo automatizados de GitHub actions para la detección, debes 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 la revisión de código (linting) y las pruebas.
Hemos creado flujos de trabajo plantilla tanto para plugins como para componentes de tema que puedes utilizar. Estos se conectan con nuestras definiciones de ‘flujo de trabajo reutilizable’ aquí.
En el repositorio de la plantilla, en GitHub puedes hacer clic en el botón Use this template para crear un repositorio de plugin/componente de tema basado en la plantilla.
Alternativamente, si ya tienes un proyecto al que deseas agregar los flujos de trabajo, simplemente copia el flujo de trabajo relevante en 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 aplicarán automáticamente en tu tema/plugin. Para los cambios incompatibles (por ejemplo, la introducción de un nuevo linter), aumentaremos la versión principal de los flujos de trabajo reutilizables, y necesitarás actualizar tu flujo de trabajo para que apunte a la nueva versión.
¡Listo! Ya lo tienes configurado. Simplemente, crea un commit o un 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ó, hacer clic en los detalles te dará alguna información sobre qué falló, lo que podría darte pistas sobre qué hay mal en tu código y qué necesita ser corregido.
Añade tus propias pruebas
Para que las pruebas de plugins y componentes funcionen de manera efectiva, es importante que escribas pruebas para tu plugin o componente de tema.
Para obtener 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 obtener más detalles sobre cómo escribir pruebas RSpec con Rails, consulta:
Ejemplos
Para tu beneficio, hemos seleccionado algunos ejemplos de plugins y componentes de tema que tienen pruebas robustas integradas:
| Plugin / Componente | Pruebas del lado del cliente | Pruebas del lado del servidor |
|---|---|---|
| Assign | ||
| Calendar | ||
| Reactions | ||
| Right Sidebar Blocks | ||
| Tag Icons | ||
| Table Builder |
Este documento está bajo control de versiones - sugiere cambios en github.
