es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , ,

Answer

  1. Avatar for 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 de pm2 list.

    Por ejemplo, puede modificar el script test en su archivo YAML para incluir una verificación del proceso de pm2:

    test:
      stage: test
      script:
        - npm run lint
        - pm2 start ecosystem.config.js --env development
        # Espera 5 segundos para que el proceso se inicie
        - sleep 5
        # Verifica si el proceso de la API está en ejecución
        - if pm2 list | grep -q "api"; then echo "El proceso de la API se inició correctamente"; else echo "Error al iniciar el proceso de la API"; exit 1; fi
    

    En este ejemplo, esperamos 5 segundos utilizando el comando sleep para darle al proceso de la API suficiente tiempo para iniciarse. Luego utilizamos el comando grep para buscar el nombre del proceso de la API en la salida de pm2 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.

Comments are closed.