Visión general
Para construir una extensión robusta para Discourse, puede ser aconsejable incluir la Integración Continua (CI) en tu plugin o componente de tema. Esto ayudará a detectar errores desde el principio y reducirá las posibilidades de errores en tu código.
Configurar un flujo de trabajo de CI utilizando GitHub Actions para automatizar compilaciones y pruebas es un enfoque que el equipo de Discourse utiliza en todos nuestros componentes, y recomendamos que hagas lo mismo.
Configuración
Para agregar flujos de trabajo automatizados para GitHub Actions que detecten problemas, 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 ‘flujos de trabajo reutilizables’ aquí.
En el repositorio de plantilla del esqueleto, en GitHub, puedes hacer clic en el botón Usar esta plantilla para crear un repositorio de plugin o 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 mayor 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 cambios que rompen la compatibilidad (por ejemplo, la introducción de un nuevo linter), incrementaremos la versión mayor de los flujos de trabajo reutilizables y deberás actualizar tu flujo de trabajo para que apunte a la nueva versión.
¡Voilà! ¡Todo está 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 las tareas.
GitHub Actions mostrará un desglose de cada prueba y, después de ejecutarla, indicará ya sea un
o un
, dependiendo de si la prueba pasó o falló.
Si una prueba falla, hacer clic en los detalles te dará alguna información sobre lo que falló, lo cual puede darte pistas sobre qué está mal en tu código y qué necesita ser corregido.
Agrega 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 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 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 tiene control de versiones: sugiere cambios en GitHub.
