Saltar a contenido

Pipelines de aplicación

Backend y frontend comparten la misma composición: cada .gitlab-ci.yml importa build.yml, test.yml y deploy.yml desde cicd-templates. Sólo cambia la URL del repositorio de manifiestos. En ambos proyectos, DEPLOY_TARGET vale gke en el snapshot.

Etapas y jobs

Etapa declarada Jobs propios o importados Resultado
quality code_quality Informe de calidad
security secret_detection Informe de secretos
test Analizadores de SAST importados Informe estático; semgrep-sast en las ejecuciones observadas
results-scanners results-code-quality, results-secret-detection Resúmenes legibles en el log
build generate-maven-jar, generate-image JAR y publicación de imagen
container-security container_scanning Análisis de la imagen publicada
container-security-results results-container-scanning Resumen del análisis de contenedor
deploy update-k8s-manifests, deploy Commit de imagen y aplicación de manifiestos

La lista de etapas del proyecto consumidor completa y prevalece sobre las listas parciales de las plantillas. El job SAST concreto depende de las plantillas de GitLab, los archivos detectados y la configuración de la instancia; no está definido directamente en test.yml.

Reglas de ejecución

Familia Condición versionada Comportamiento
Construcción Referencia protegida Reglas con when: always
Calidad y su resultado Referencia protegida y ENABLE_QUALITY == 'true' Ejecución condicionada
Secretos y contenedores Referencia protegida y ENABLE_SECURITY == 'true' Ejecución condicionada
SAST Reglas de las plantillas importadas Revisar configuración expandida
Actualización y despliegue Referencia protegida y rama literal main Automático con la semántica de éxito por defecto

No se ha implementado una política completa de validación de merge requests en las plantillas propias. Una rama no protegida no ejecuta los jobs protegidos aunque tenga cambios relevantes. La rama de despliegue está escrita como main, no como $CI_DEFAULT_BRANCH.

Dependencias reales

generate-image necesita el artefacto de generate-maven-jar; los dos pertenecen a build. deploy necesita update-k8s-manifests con optional: true. Los jobs que no usan needs siguen la secuencia de etapas. Por tanto, el orden visual de las columnas no basta para deducir todas las dependencias ni los bloqueos.

La construcción usa when: always, y los resultados de seguridad heredan allow_failure: true. La política efectiva no constituye una barrera de seguridad que impida entregar cualquier versión con hallazgos. Los detalles están en calidad y seguridad.

Evidencia pública de ejecución

Servicio Pipeline observado Resultado Commit
Backend 2604545913 11 jobs correctos 2c8e6ef861de7
Frontend 2604607441 11 jobs correctos 1e56e856d4cf3

La consulta del 26 de octubre de 2026 confirma estado de jobs, no el contenido de todos los informes ni la salud actual de los servicios. El job de despliegue no espera el rollout ni ejecuta pruebas HTTP: un pipeline correcto tiene ese alcance concreto.

La infraestructura y la documentación tienen pipelines independientes y otras reglas.

Fuentes y trazabilidad