igrowker / i003-nativo-front

2 stars 0 forks source link

ci: set up GitHub Actions pipeline #12

Closed andresfernandez89 closed 2 days ago

andresfernandez89 commented 3 days ago

TICKET --> https://github.com/orgs/igrowker/projects/15/views/2?pane=issue&itemId=79854549

Este flujo de trabajo de GitHub Actions define un pipeline para desplegar una aplicación en un entorno Node.js. Te lo explico paso a paso, de forma sencilla:

name: Pipeline Le da un nombre al flujo de trabajo. En este caso, se llama "Pipeline", lo cual indica que es un flujo de trabajo para automatizar ciertas tareas, probablemente relacionadas con el despliegue de la aplicación. on: Aquí se especifica cuándo se debe ejecutar este flujo de trabajo.

push: Se ejecuta cada vez que alguien hace un push a la rama develop. pull_request: Se ejecuta cada vez que alguien crea o actualiza un pull request hacia la rama develop. jobs: Define los trabajos o tareas (jobs) que el pipeline va a realizar. En este caso, hay un solo trabajo llamado deploy.

deploy: Este trabajo se encargará del despliegue del proyecto. Tiene las siguientes características:

runs-on: ubuntu-latest: El trabajo se ejecutará en un servidor virtual con el sistema operativo Ubuntu (la versión más reciente). GitHub Actions proporciona estos entornos virtuales para ejecutar los trabajos. steps: Define los pasos que se van a realizar dentro del trabajo deploy. Una explicación de cada paso:

- name: Check out code: Este paso utiliza una acción (actions/checkout@v4) que descarga el código del repositorio en el servidor donde se va a ejecutar el pipeline. Acción: Clona el repositorio para que los siguientes pasos puedan trabajar con el código.

- name: Set up Node.js: Este paso configura el entorno de Node.js en la versión 20. Acción: Utiliza actions/setup-node@v4 para instalar Node.js en la versión 20. También usa una característica llamada cache: "npm" para almacenar en caché las dependencias instaladas con npm. Esto hace que las instalaciones de dependencias sean más rápidas en ejecuciones futuras.

- name: Install dependencies: En este paso, se instalan las dependencias del proyecto utilizando el comando npm ci. Este comando es más rápido que npm install porque instala exactamente las versiones que están especificadas en el archivo package-lock.json. Las opciones --no-audit, --no-fund, simplemente deshabilitan ciertas verificaciones y advertencias que no son necesarias en este contexto (para evitar auditorías de seguridad y otras alertas).

- name: Build: Finalmente, este paso ejecuta el comando npm run build, que crea los archivos de producción de la aplicación (esto depende de cómo esté configurado el script build en el archivo package.json). Acción: Construye la aplicación, por ejemplo, generando los archivos estáticos que pueden ser desplegados en un servidor.

Resumen Este pipeline automatiza el proceso de:

Cuando hacemos el push o pr, nos aparece que esta chequeando: image

Si todo esta ok les tira en verde un succesful checks y sino en rojo error.

Aca me tiro un error, entonces podemos ir a la solapa de Actions y ver donde esta el error: image

Aca aplique unas modificaciones y todo ok: image

Cualquier pregunten obvio.