No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Automatizacion en GitHub Actions

24/25
Recursos

驴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:

  1. Crear la carpeta .github: Coloca esta carpeta en el mismo nivel que tu directorio src.

  2. Configurar workflows: Dentro de la carpeta .github, crea otra carpeta llamada workflows. Esta es donde almacenaremos los archivos de configuraci贸n YAML necesarios.

  3. 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:10
    env:
      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!

Aportes 2

Preguntas 2

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

Buen铆sima esta clase

Si no les aparece el 'puntito' como fue mi caso, solo vayan a la pesta帽a de 'Actions, ah铆 encontrar谩n las pruebas e2e. Como recomendaci贸n para febrero de 2024, Github indica que node v16 est谩 deprecado, lo recomendable es usar nodev20 y todo sigue funcionando correctamente.