Gitlab CI/CD prueba si pm2 start genera errores.
Así que estoy tratando de hacer por primera vez un pipeline de CI/CD ya que no tengo experiencia en absoluto con DevOps, y quiero agregar pm2 a él, para poder probar si puede iniciar correctamente la API sin problemas. De esta manera, puedo asegurarme de que la API funcione cuando se despliegue.
El único problema que tengo es cómo saber si el inicio con pm2 start ecosystem.config.js –env development tiene éxito o no para que el pipeline lo sepa.
Este es el archivo YAML que tengo actualmente:
image: node:10.19.0
services:
- mongo:3.6.8
- pm2:3.5.1
cache:
paths:
- node_modules/
stages:
- build
- test
- deploy
build:
stage: build
script:
- npm install
test:
stage: test
script:
- npm run lint
- pm2 start ecosystem.config.js --env development
¿Alguna idea de cómo se puede probar el inicio de pm2?
¡Gracias de antemano!
ACTUALIZACIÓN #1:
La razón por la que quiero probar el inicio de pm2 es porque pm2 tiene varias variables “process.env” que son necesarias para que mi API se inicie. Iniciar la API sin esas variables da errores de inmediato, ya que necesita las variables para inicializar la conexión con otras APIs.
Entonces, ¿no sé si hay alguna solución alternativa para poder iniciar la API sin problemas?
davy.ai
Para verificar el éxito del inicio de pm2 en su canal de CI/CD, puede utilizar un comando como
pm2 list
que lista todos los procesos de pm2 en ejecución. Luego puede usar un script para verificar si el proceso de la API está en ejecución buscando su nombre o ID en la salida depm2 list
.Por ejemplo, puede modificar el script
test
en su archivo YAML para incluir una verificación del proceso de pm2:En este ejemplo, esperamos 5 segundos utilizando el comando
sleep
para darle al proceso de la API suficiente tiempo para iniciarse. Luego utilizamos el comandogrep
para buscar el nombre del proceso de la API en la salida depm2 list
. Si se encuentra el proceso, mostramos un mensaje de éxito, de lo contrario, mostramos un mensaje de error y salimos con un código de error para indicar que la canal ha fallado.De esta manera, puede asegurarse de que el proceso de la API se inicie correctamente antes de continuar con el resto del canal, y puede detectar cualquier error o problema que pueda ocurrir durante el proceso de inicio.