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
| Aspecto | Modo Libre | Modo Despliegue |
|---|
| Ramas | integration | master (y integration para pruebas) |
| Activación | Manual + push automático | Solo manual con ENTITIES + PROJECT_NAME |
| Detección de cambios | Sí (en push automático) | No |
| Multi-entidad | No | Sí |
| URL base | Parámetro APP_BASE_URL | Reconstruida automáticamente por entidad |
| Credenciales | USER_GENERIC / PASSWORD_UNIVERSAL | Especí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ámetro | Tipo | Valor por defecto | Descripción |
|---|
TEST_SUITE | choice | auto | Suite a correr: auto, smoke, regression o all |
MODULE | string | (vacío) | Módulo específico a filtrar por tag (ej: login). Vacío = todos los módulos |
EXTRA_GREP | string | (vacío) | Patrón --grep adicional libre. Vacío si no aplica |
APP_BASE_URL | string | http://172.17.1.214:9080/pasto/ | URL base de la aplicación |
FORCE_FULL_SUITE | boolean | false | Fuerza 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
| Valor | Patrón --grep generado | Cobertura |
|---|
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 |
auto | Resuelve a all en integration | Comportamiento 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ámetro | Tipo | Valor por defecto | Descripción |
|---|
ENTITIES | string | (vacío) | Entidades desplegadas, separadas por coma. Ej: pasto,cajica,honda |
PROJECT_NAME | string | (vacío) | Microservicios desplegados, separados por coma. Ej: SYSMAN_PREDIAL,SYSMAN_TESORERIA |
VERSION | string | (vacío) | Versión release (informativo). Ej: RC.0.5.7 |
TEST_TYPE | choice | e2e | Tipo de prueba: e2e, smoke, regression, critical o all |
EXECUTION_MODE | choice | per_entity | per_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_NAME | Tag de Playwright |
|---|
SYSMAN_PREDIAL | sysman-predial |
SYSMAN_ADMINISTRACION_SISTEMA | sysman-administracion-sistema |
SYSMAN_ADMINISTRACION | administracion |
MEERKAT_ERP_MENSAJERIA | mensajeria |
MEERKAT_ERP_AUTENTICACION_LDAP | autenticacion |
SYSMAN_EXOGENAS | exogenas |
SYSMAN_FINANCIABLES | financiables |
SYSMAN_IMPUESTOS_DECLARADOS | impuestos_declarados |
MODELADOR_DE_PLANTILLAS | modelador_plantillas |
SYSMAN_PLANO_MOROROS | plano_morosos |
MEERKAT_PROJECT | reporte |
SYSMAN_REPORTEADOR | reporteador |
SYSMAN_TESORERIA | tesoreria |
SYSMAN_TRANSITO_RODAMIENTO | transito_rodamiento |
SYSMAN_WORK_PRO | workpro |
SYSMAN_FACTURACION_GENERAL | facturacion_general |
SYSMAN_TOL | tol |
TOL_INDUSTYCOM_FUN_FACTURACIONWEB | facturacion_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.