From 46c98dbc38c3110f3f217140bd58ad4e02f3c0c2 Mon Sep 17 00:00:00 2001 From: AlexeerCT Date: Fri, 24 Apr 2026 10:47:06 -0500 Subject: [PATCH] Update Docker volumes in docker-compose.yml and enhance Jenkinsfile for frontend testing - Changed PostgreSQL data volume paths in docker-compose.yml to remove the trailing 'data' directory. - Improved the 'Test frontend' stage in Jenkinsfile by adding cleanup steps and ensuring the workspace is correctly copied to the Docker container for testing. --- Jenkinsfile | 29 +++++++++++++++++++++-------- docker-compose.yml | 4 ++-- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index f934bb56..af2c0f93 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -131,23 +131,36 @@ pipeline { } } - /* Frontend: i18n (paraglide no versionado) + vitest solo proyecto "server" (Node). - * "client" usa @vitest/browser+Playwright: requeriría playwright install (chromium) en el contenedor. - * pnpm run check svelte-check se omite mientras haya deuda de tipos en el árbol; pnpm run lint alinear cuando pase. */ + // Test frontend: OBLIGATORIO usar el repo clonado (WORKSPACE), no la imagen del frontend en Harbor. + // Svelte se compila en el Dockerfile: la imagen de producción solo trae build/ + deps de runtime; no hay fuentes + // para vitest, ni paraglide desde inlang, ni pnpm devDependencies. Imagen usada aquí: solo node:22-bookworm. + // Mismo criterio que Test backend: docker cp (no -v) si Jenkins vive en Docker. Vitest: sin @vitest/browser en CI. stage('Test frontend') { steps { sh ''' set -euxo pipefail - echo "== Test frontend (vitest —project server) ==" - docker run --rm \ + echo "== Test frontend (vitest) ==" + FE_CONTAINER="anexo76-test-fe-${BUILD_NUMBER}" + + cleanup() { + docker rm -f "$FE_CONTAINER" >/dev/null 2>&1 || true + } + trap cleanup EXIT + + docker rm -f "$FE_CONTAINER" >/dev/null 2>&1 || true + docker run -d --name "$FE_CONTAINER" node:22-bookworm sleep infinity + docker exec "$FE_CONTAINER" mkdir -p /workspace + docker cp "$WORKSPACE/." "$FE_CONTAINER:/workspace" + + docker exec \ -e CI=true \ -e NODE_ENV=test \ - -e JENKINS_URL=${JENKINS_URL} \ - -v "$WORKSPACE:/workspace" \ + -e "JENKINS_URL=${JENKINS_URL}" \ -w /workspace/frontend \ - node:22-bookworm \ + "$FE_CONTAINER" \ bash -lc ' set -euxo pipefail + test -f package.json node --version corepack enable pnpm --version diff --git a/docker-compose.yml b/docker-compose.yml index 68d14cd0..05165fd4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -11,7 +11,7 @@ services: ports: - "5432:5432" volumes: - - postgres_app_data:/var/lib/postgresql/data + - postgres_app_data:/var/lib/postgresql - ./scripts/postgres-app-entrypoint.sh:/docker-entrypoint-initdb.d/init-app.sh:ro networks: - backend-net @@ -47,7 +47,7 @@ services: ports: - "5433:5432" volumes: - - postgres_keycloak_data:/var/lib/postgresql/data + - postgres_keycloak_data:/var/lib/postgresql - ./scripts/postgres-keycloak-entrypoint.sh:/docker-entrypoint-initdb.d/init-keycloak.sh:ro networks: - auth-net