Guía para GitHub Actions con Jasmine (workflows)
En esta guía, se explica el archivo YAML de GitHub Actions utilizado para ejecutar pruebas Jasmine en tu proyecto. El archivo YAML se encuentra en tu repositorio y se llama generalmente .github/workflows/nombre-archivo.yml.
Contenido del Archivo YAML
name: Jasmine Test
on:
push:
branches: [main]
pull_request:
branches: [main]
types: [opened, synchronize]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Install dependencies
run: npm install
- name: Run Jasmine Test
run : npm test
build:
runs-on: ubuntu-latest
needs: test
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Install dependencies
run: npm install
- name: Build and deploy
run: echo "This step will always run"
Explicación del Archivo YAML
- name: Define el nombre del flujo de trabajo como "Jasmine Test".
- on: Especifica cuándo debe ejecutarse el flujo de trabajo, en este caso, en cada empuje (push) y solicitud de extracción (pull request) a la rama principal (main).
- jobs: Contiene dos trabajos ("test" y "build") que se ejecutan en paralelo.
Trabajo "test":
- runs-on: Define que este trabajo se ejecuta en el sistema operativo Ubuntu.
- steps: Contiene los pasos a seguir, como la obtención del código, la instalación de dependencias y la ejecución de las pruebas Jasmine.
Trabajo "build":
- runs-on: Define que este trabajo también se ejecuta en el sistema operativo Ubuntu.
- needs: Indica que este trabajo depende del éxito del trabajo "test".
- steps: Contiene pasos similares al trabajo "test", incluida la construcción y el despliegue (en este caso, un simple mensaje).
Explicación de la Sección "on"
La sección on: especifica cuándo debe ejecutarse el flujo de trabajo. Se desencadenará en los siguientes eventos:
- push: Se activa en cada empuje (push) a la rama principal (main).
- branches: [main]: Indica que el flujo de trabajo se ejecutará solo cuando se realice un empuje a la rama principal (main).
- pull_request: Se activa cuando se abre una nueva solicitud de extracción (pull request) o cuando se sincroniza una solicitud de extracción existente (synchronize).
- branches: [main]: Similar al evento de empuje, esto indica que el flujo de trabajo se ejecutará solo cuando la solicitud de extracción esté dirigida a la rama principal (main).
- types: [opened, synchronize]: Especifica los tipos de eventos de solicitud de extracción que activarán el flujo de trabajo. En este caso, se ejecutará cuando se abra una nueva solicitud de extracción (
opened) o cuando se sincronice una solicitud de extracción existente (synchronize).
Consideraciones para Pull Requests
Para asegurar que el flujo de trabajo funcione correctamente con las solicitudes de extracción (Pull Requests) en GitHub, se recomienda configurar algunas reglas de protección en la rama principal (main). Sigue estos pasos en tu repositorio:
- Proteger ramas coincidentes: Dirígete a la configuración de tu repositorio y selecciona "Branches". Configura las siguientes reglas para la rama principal (main):
- Require a pull request before merging: Habilita esta opción para asegurar que todos los cambios se realicen a través de una solicitud de extracción antes de la fusión.
- Require approvals: Habilita esta opción para requerir un número específico de aprobaciones antes de que una solicitud de extracción pueda fusionarse.
- Require status checks to pass before merging: Elige el status check correspondiente a tu trabajo (por ejemplo, el trabajo "test" en este caso) para garantizar que todas las comprobaciones hayan pasado antes de la fusión.
- Require branches to be up to date before merging: Activa esta opción para garantizar que las solicitudes de extracción estén actualizadas con el código más reciente antes de la fusión.
Estas configuraciones aseguran que las solicitudes de extracción se realicen correctamente y que todas las comprobaciones necesarias se hayan completado antes de permitir la fusión en la rama principal (main).
Recuerda ajustar la configuración según las necesidades específicas de tu proyecto.
Más Información
Para obtener información más detallada sobre la configuración de GitHub Actions y sus características, consulta la documentación oficial de GitHub Actions.
