¿Cómo integrar pruebas automatizadas en tu repositorio con GitHub Actions?
Integrar pruebas automatizadas en un flujo de trabajo es crucial para asegurar la calidad del código y reducir el tiempo de despliegue. A continuación, te guiaré paso a paso para implementar la automatización de pruebas en tu ciclo de integración continua utilizando GitHub Actions. Esto permitirá ejecutar las pruebas eficientemente en cada commit o push a tu repositorio, haciendo que el proceso de desarrollo sea más fluido y seguro.
¿Cómo crear un flujo de trabajo con GitHub Actions?
Para empezar, deberás crear y configurar archivos de flujo de trabajo dentro de tu proyecto. Estos archivos son esenciales para definir cómo y cuándo se ejecutarán las pruebas. Aquí te explico cómo hacerlo:
Crear la carpeta .github:
Coloca esta carpeta en el mismo nivel que tu directorio src.
Configurar workflows:
Dentro de la carpeta .github, crea otra carpeta llamada workflows. Esta es donde almacenaremos los archivos de configuración YAML necesarios.
Crear el archivo de workflow YAML:
Crea un archivo llamado api.continuousintegration.yaml. El nombre es opcional, pero debe ser un archivo .yaml.
Asigna un nombre a la ejecución, por ejemplo API, para identificarlo fácilmente.
name: API
on:push:branches:-'**'
¿Cuándo ejecutar las pruebas?
Es crucial definir bajo qué circunstancias se ejecutarán las pruebas. La configuración básica puede ser:
Cada push o commit: Define que las pruebas corran en cada push a cualquier branch.
Pull requests: Considera activar las pruebas en ramas principales como main o master.
¿Cómo configurar los Jobs en GitHub Actions?
Los jobs son las tareas específicas que GitHub Actions ejecutará. Aquí detallamos cómo configurarlos para las pruebas end-to-end (e2e):
jobs:end-to-end:runs-on: ubuntu-latest
steps:-name: Checkout repository
uses: actions/checkout@v3
-name: Install dependencies
run: npm ci
-name: Run end-to-end tests
env:# Definir variables de entorno aquíVAR1: value1
run: npm run e2e
Sistema operativo: Las pruebas generalmente corren en una instancia de Ubuntu.
Node.js instalado: Asegúrate de que la máquina virtual tenga una versión de Node.js lista.
Clonar el repositorio: Utiliza el step checkout para copiar el código en el servidor de integración.
Instalar dependencias: Utiliza npm ci para instalar dependencias, optimizado para entornos CI.
Ejecutar las pruebas: Define las variables de entorno necesarias y ejecuta sus pruebas con npm run e2e.
¿Cómo manejar las variables de entorno?
Las variables de entorno son necesarias para la configuración y ejecución de pruebas. En entornos de integración continua, estas deben declararse directamente en el archivo YAML:
env:DATABASE_URL: postgres://user:password@postgres-service/e2etests
NODE_ENV: ci
¿Cómo correr servicios adicionales como bases de datos?
GitHub Actions permite ejecutar servicios externos similares a Docker. Esto se usa para preparar servicios como bases de datos:
services:postgres:image: postgres:10env:POSTGRES_USER: user
POSTGRES_PASSWORD: secret
ports:- 5432:5432
Redes de contenedores: Cambia la conexión de localhost al nombre asignado al servicio, por ejemplo, postgres.
Visualizar y validar las pruebas en GitHub Actions
Una vez configuradas las pruebas, cada push o commit mostrará un feedback visual inmediato en GitHub, indicando si las pruebas han pasado o fallado. Esto permite asegurar constantemente la calidad del código con cada contribución al repositorio:
Estado de la prueba: Verás un check verde para un commit válido y una cruz roja si alguna prueba falló. Esto es invaluable para verificar la estabilidad del proyecto y facilitar colaboraciones entre equipos.
Esta integración con GitHub Actions proporciona un flujo de trabajo más robusto, asegurando que cada nueva línea de código respete las normas de calidad y funcionalidad definidas. No dudes en seguir aprendiendo y mejorando tus habilidades en testing y automatización. ¡El camino apenas comienza!