Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Giofelix/Proyecto-automatizacion-Empresa/llms.txt

Use this file to discover all available pages before exploring further.

El pipeline de automation-arqc opera en dos modos mutuamente excluyentes que se detectan automáticamente según los parámetros recibidos al lanzar el build. El Modo Libre está diseñado para el ciclo de desarrollo diario en la rama integration: puede dispararse por push o de forma manual, filtra pruebas según los cambios detectados y acepta un formulario de parámetros flexible. El Modo Despliegue es la vía exclusiva para master: requiere identificar explícitamente los microservicios desplegados y las entidades afectadas, construye la URL base de forma automática por entidad y gestiona credenciales específicas con fallback seguro.

Comparación de modos

AspectoModo LibreModo Despliegue
Ramasintegrationmaster (y integration para pruebas)
ActivaciónManual + push automáticoSolo manual con ENTITIES + PROJECT_NAME
Detección de cambiosSí (en push automático)No
Multi-entidadNo
URL baseParámetro APP_BASE_URLReconstruida automáticamente por entidad
CredencialesUSER_GENERIC / PASSWORD_UNIVERSALEspecíficas por entidad con fallback a genéricas
El modo se detecta en el stage Información del Build: si los parámetros PROJECT_NAME y ENTITIES tienen valor, el pipeline entra en DEPLOYMENT; de lo contrario opera en FREE.

Modo Libre

El Modo Libre es la forma habitual de trabajar en integration. Permite tanto ejecuciones manuales desde la UI de Jenkins como ejecuciones automáticas disparadas por push, y adapta el alcance de las pruebas de forma inteligente.

Parámetros

ParámetroTipoValor por defectoDescripción
TEST_SUITEchoiceautoSuite a correr: auto, smoke, regression o all
MODULEstring(vacío)Módulo específico a filtrar por tag (ej: login). Vacío = todos los módulos
EXTRA_GREPstring(vacío)Patrón --grep adicional libre. Vacío si no aplica
APP_BASE_URLstringhttp://172.17.1.214:9080/pasto/URL base de la aplicación
FORCE_FULL_SUITEbooleanfalseFuerza la suite completa ignorando la detección de cambios. Solo aplica en integration

Detección inteligente de cambios

Cuando el build es disparado por un push (no manual) y FORCE_FULL_SUITE está desactivado, el pipeline analiza los archivos modificados entre el commit actual y el anterior exitoso. La lógica clasifica los cambios en tres decisiones: RUN_ALL — ejecuta la suite completa Se activa si alguno de los archivos modificados corresponde a infraestructura compartida:
playwright/            → configuración y setup global
pages/login/           → flujo de autenticación
pages/common/          → componentes reutilizables en todos los módulos
fixtures/index.js      → punto de entrada de fixtures
fixtures/auth.fixture.js
suites/config-ambientes/
package.json
package-lock.json
RUN_TARGET — ejecuta solo el módulo o spec afectado Se activa cuando los cambios son acotados a un módulo específico:
  • Cambios en pages/modulos/reteica/ → ejecuta suites/Reteica
  • Cambios en pages/modulos/login/ → ejecuta suites/Login
  • Cambios en un archivo *.spec.js específico → ejecuta solo ese spec
Si un archivo modificado no puede clasificarse en ninguna categoría conocida, el pipeline toma la decisión conservadora de ejecutar la suite completa (RUN_ALL) para no perder cobertura silenciosamente.
SKIP — marca el build como NOT_BUILT Se activa cuando todos los archivos modificados pertenecen a la lista de ignorados:
Jenkinsfile / Jenkinsfile.*
playwright.config.js
.gitignore
.env.example
*.md
specs/
docs/
Adicionalmente, si el mensaje del commit contiene [ci skip] o [skip ci] (sin distinción de mayúsculas), el build se marca NOT_BUILT inmediatamente sin analizar archivos.

Valores de TEST_SUITE y sus patrones grep

ValorPatrón --grep generadoCobertura
smoke(?=.*@smoke)Solo tests marcados @smoke
regression(?=.*@regression|@smoke|@critical)Tests de regresión, humo y críticos
all(sin filtro)Todas las pruebas de la suite
autoResuelve a all en integrationComportamiento automático según rama
Si se especifica MODULE, se añade un lookahead adicional (?=.*@{modulo}). Si se especifica EXTRA_GREP, también se incorpora como lookahead. Los patrones se combinan con AND lógico (todos los lookaheads deben cumplirse).

Modo Despliegue

El Modo Despliegue está diseñado para ejecutar pruebas E2E después de un despliegue real a producción o a un ambiente de aceptación. Es la única forma válida de ejecutar pruebas en la rama master.

Parámetros

ParámetroTipoValor por defectoDescripción
ENTITIESstring(vacío)Entidades desplegadas, separadas por coma. Ej: pasto,cajica,honda
PROJECT_NAMEstring(vacío)Microservicios desplegados, separados por coma. Ej: SYSMAN_PREDIAL,SYSMAN_TESORERIA
VERSIONstring(vacío)Versión release (informativo). Ej: RC.0.5.7
TEST_TYPEchoicee2eTipo de prueba: e2e, smoke, regression, critical o all
EXECUTION_MODEchoiceper_entityper_entity (una corrida por entidad) o all_entities_together (una sola corrida)

Microservicios soportados

El parámetro PROJECT_NAME debe contener uno o más de los siguientes valores. Cada microservicio se traduce al tag de Playwright correspondiente mediante la función getMicroservicioToTagMap():
PROJECT_NAMETag de Playwright
SYSMAN_PREDIALsysman-predial
SYSMAN_ADMINISTRACION_SISTEMAsysman-administracion-sistema
SYSMAN_ADMINISTRACIONadministracion
MEERKAT_ERP_MENSAJERIAmensajeria
MEERKAT_ERP_AUTENTICACION_LDAPautenticacion
SYSMAN_EXOGENASexogenas
SYSMAN_FINANCIABLESfinanciables
SYSMAN_IMPUESTOS_DECLARADOSimpuestos_declarados
MODELADOR_DE_PLANTILLASmodelador_plantillas
SYSMAN_PLANO_MOROROSplano_morosos
MEERKAT_PROJECTreporte
SYSMAN_REPORTEADORreporteador
SYSMAN_TESORERIAtesoreria
SYSMAN_TRANSITO_RODAMIENTOtransito_rodamiento
SYSMAN_WORK_PROworkpro
SYSMAN_FACTURACION_GENERALfacturacion_general
SYSMAN_TOLtol
TOL_INDUSTYCOM_FUN_FACTURACIONWEBfacturacion_web

Entidades soportadas

El parámetro ENTITIES acepta cualquier combinación de las siguientes entidades validadas en getEntidadesValidas():
cajica · sogamoso · honda · melgar · florencia · sanmartin · corpoboyaca
gobnarino · pasto · demo · duitama · trinidad · alc_vleyva · alc_cubara · alc_buenavista
La URL base de cada entidad se construye automáticamente con el patrón:
http://172.17.1.214:9080/{entidad}/
Por ejemplo, la entidad pasto usará http://172.17.1.214:9080/pasto/.

Modos de ejecución de entidades

per_entity — el pipeline ejecuta una corrida de Playwright independiente por cada entidad. Los resultados de Allure se acumulan en allure-results/ para generar un reporte unificado al final. Si una entidad falla, el pipeline continúa con las demás y al terminar lanza un error que lista todas las entidades con fallos. all_entities_together — todas las entidades se incluyen como filtros OR en un único patrón grep junto con el tag @todas_entidades. Útil cuando los tests están diseñados para correr contra múltiples entidades en una sola sesión.

Patrón grep en Modo Despliegue

El grep se construye como una combinación de lookaheads:
// Módulos (OR entre los microservicios)
(?=.*(@sysman-predial|@tesoreria))

// Entidades (OR entre entidades + @todas_entidades)
(?=.*(@pasto|@cajica|@todas_entidades))

// Tipo de prueba (solo si no es 'all')
(?=.*@e2e)           // TEST_TYPE = 'e2e'
(?=.*@smoke)         // TEST_TYPE = 'smoke'
(?=.*(@regression|@smoke|@critical))  // TEST_TYPE = 'regression'
(?=.*@critical)      // TEST_TYPE = 'critical'
Todos los lookaheads se concatenan (AND lógico), por lo que solo se ejecutan los tests que cumplan módulo + entidad + tipo de prueba simultáneamente.
En la rama master, si se lanza el pipeline sin especificar ENTITIES y PROJECT_NAME, el build se marcará automáticamente como NOT_BUILT en el stage Control de Rama y no se ejecutará ninguna prueba. Esto es un comportamiento deliberado de seguridad: master nunca corre en Modo Libre.

Build docs developers (and LLMs) love