Refactor Alembic command execution in Jenkinsfile to use script

- Updated the Alembic upgrade command to execute a script instead of using a variable, addressing issues with command execution in the Docker environment.
- Revised comments to clarify the changes and their implications for the command context during E2E testing.
This commit is contained in:
2026-04-24 14:03:40 -05:00
parent ae4644cb75
commit 8dcbfe8b3d
2 changed files with 9 additions and 4 deletions

6
Jenkinsfile vendored
View File

@@ -284,10 +284,8 @@ pipeline {
e2e_compose_fail_logs
exit 1
fi
# Cuerpo de -c en variable: las comillas dobles inline en "if ! e2e_compose run ..." se colaban en
# el shell de Jenkins y -c quedaba solo con "set"; el resto se ejecutaba en el host (no existe /app)
E2E_ALEMBIC_CMD='set -eux; test -f /app/alembic.ini; cd /app; exec alembic -c /app/alembic.ini upgrade head'
if ! e2e_compose run --rm --no-deps --entrypoint /bin/sh backend -c "$E2E_ALEMBIC_CMD"; then
# Script en el repo: Groovy/CI mutila comillas de -c o asignación VAR='…;…' (mismo síntoma: test en host)
if ! e2e_compose run --rm --no-deps --entrypoint /bin/sh backend /app/scripts/jenkins-alembic-e2e.sh; then
echo "ERROR: falló alembic upgrade head (job previo al stack completo)"
e2e_compose_fail_logs
exit 1

View File

@@ -0,0 +1,7 @@
#!/bin/sh
# Ejecutado solo desde Jenkins E2E: docker compose run --entrypoint /bin/sh … backend /app/scripts/jenkins-alembic-e2e.sh
# (evita pasar cadenas con ';' a -c: Groovy/CI rompe comillas y parte el comando)
set -eux
test -f /app/alembic.ini
cd /app
exec alembic -c /app/alembic.ini upgrade head