Control de Pull Request
Configuración del archivo pipeline.yml
pull_request:
types: [opened, synchronize]
Pasos para controlar un Pull Request
- Abre un nuevo Pull Request o actualiza uno existente.
- El evento "opened" o "synchronize" en el archivo pipeline.yml se activará cuando se abra o actualice un Pull Request.
- El sistema ejecutará automáticamente las tareas definidas en el archivo pipeline.yml para el Pull Request en cuestión.
- Estas tareas pueden incluir pruebas automatizadas, análisis de código estático, generación de informes, entre otros procesos.
- Si todas las tareas definidas en el archivo pipeline.yml se completan con éxito, el Pull Request puede ser considerado para la fusión (merge).
- Si alguna de las tareas falla, se puede realizar una acción adecuada según las políticas y el flujo de trabajo establecidos en el proyecto. En este caso, queda inhabilitado el botón del Merge.
- Los desarrolladores y revisores del proyecto pueden agregar comentarios y realizar revisiones en el Pull Request para discutir los cambios propuestos.
- Una vez que se resuelven los problemas y se obtienen las aprobaciones necesarias, el Pull Request puede fusionarse con la rama principal del proyecto.
Configuraciones necesarias para ver el control pull request en acción
- ir a Settings, luego branches, escoger la rama que se desea proteger y luego implementar las opciones que se desean, por ejemplo:
- Protect matching branches: Esta configuración está habilitada para proteger la rama principal del proyecto.
- Require a pull request before merging: Se requiere la creación de un Pull Request para realizar fusiones en la rama protegida.
- Require approvals: Antes de la fusión, se deben obtener aprobaciones de revisores asignados al Pull Request.
- Require status checks to pass before merging: Los "status checks" automatizados deben aprobarse antes de que la fusión sea permitida.
- Require branches to be up to date before merging: La rama de destino debe estar actualizada antes de que se permita la fusión.
- Search for status checks in the last week for this repo: Debemos buscar el nombre del job, en este caso fue test.

Beneficios del control de Pull Request
- Proporciona un proceso estructurado para revisar y discutir los cambios propuestos.
- Asegura que se realicen pruebas y análisis antes de fusionar los cambios en el proyecto.
- Permite la colaboración entre desarrolladores y revisores para mejorar la calidad del código.
- Facilita la documentación y el seguimiento de los cambios realizados en el proyecto.
Configuracion completa
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"