Resumen
Para desarrollar una extensión robusta para Discourse, puede ser prudente incluir la Integración Continua (CI) en tu plugin o componente de tema. Esto ayudará a detectar errores desde una etapa temprana 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 hacer lo mismo.
Configuración
Para agregar flujos de trabajo automatizados para GitHub actions con el fin de detectar errores, 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 verificación de estilo (linting) y las 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 plantilla de esqueleto, 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 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 los cambios que rompen la compatibilidad (por ejemplo, la introducción de un nuevo linter), aumentaremos la versión mayor de los flujos de trabajo reutilizables y necesitarás actualizar tu flujo de trabajo para que apunte a la nueva versión.
¡Voilà! ¡Ya tienes todo 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 se pasó o falló.
Si una prueba falló, hacer clic en los detalles te dará alguna información sobre qué falló, lo cual podría darte pistas sobre qué hay 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 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.
