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.
This commit is contained in:
29
Jenkinsfile
vendored
29
Jenkinsfile
vendored
@@ -131,23 +131,36 @@ pipeline {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Frontend: i18n (paraglide no versionado) + vitest solo proyecto "server" (Node).
|
// Test frontend: OBLIGATORIO usar el repo clonado (WORKSPACE), no la imagen del frontend en Harbor.
|
||||||
* "client" usa @vitest/browser+Playwright: requeriría playwright install (chromium) en el contenedor.
|
// Svelte se compila en el Dockerfile: la imagen de producción solo trae build/ + deps de runtime; no hay fuentes
|
||||||
* pnpm run check svelte-check se omite mientras haya deuda de tipos en el árbol; pnpm run lint alinear cuando pase. */
|
// 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') {
|
stage('Test frontend') {
|
||||||
steps {
|
steps {
|
||||||
sh '''
|
sh '''
|
||||||
set -euxo pipefail
|
set -euxo pipefail
|
||||||
echo "== Test frontend (vitest —project server) =="
|
echo "== Test frontend (vitest) =="
|
||||||
docker run --rm \
|
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 CI=true \
|
||||||
-e NODE_ENV=test \
|
-e NODE_ENV=test \
|
||||||
-e JENKINS_URL=${JENKINS_URL} \
|
-e "JENKINS_URL=${JENKINS_URL}" \
|
||||||
-v "$WORKSPACE:/workspace" \
|
|
||||||
-w /workspace/frontend \
|
-w /workspace/frontend \
|
||||||
node:22-bookworm \
|
"$FE_CONTAINER" \
|
||||||
bash -lc '
|
bash -lc '
|
||||||
set -euxo pipefail
|
set -euxo pipefail
|
||||||
|
test -f package.json
|
||||||
node --version
|
node --version
|
||||||
corepack enable
|
corepack enable
|
||||||
pnpm --version
|
pnpm --version
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "5432:5432"
|
- "5432:5432"
|
||||||
volumes:
|
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
|
- ./scripts/postgres-app-entrypoint.sh:/docker-entrypoint-initdb.d/init-app.sh:ro
|
||||||
networks:
|
networks:
|
||||||
- backend-net
|
- backend-net
|
||||||
@@ -47,7 +47,7 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "5433:5432"
|
- "5433:5432"
|
||||||
volumes:
|
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
|
- ./scripts/postgres-keycloak-entrypoint.sh:/docker-entrypoint-initdb.d/init-keycloak.sh:ro
|
||||||
networks:
|
networks:
|
||||||
- auth-net
|
- auth-net
|
||||||
|
|||||||
Reference in New Issue
Block a user