From a7a8b9010db33180cd41519d7a1f78da05c3e9f8 Mon Sep 17 00:00:00 2001 From: Jhonny Soto Date: Mon, 24 Aug 2026 19:45:31 -0400 Subject: [PATCH] JSOTO GAR --- scripts/README.md | 47 ++++++++++++++++++++++++++++ scripts/build_mbs.cmd | 68 ++++++++++++++++++++++++++++++++++++++++ scripts/deploy_mbs.cmd | 71 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 186 insertions(+) create mode 100644 scripts/README.md create mode 100644 scripts/build_mbs.cmd create mode 100644 scripts/deploy_mbs.cmd diff --git a/scripts/README.md b/scripts/README.md new file mode 100644 index 0000000..b8484cc --- /dev/null +++ b/scripts/README.md @@ -0,0 +1,47 @@ +# Scripts de build & deploy — Menú MBS (Genero 6 / GAS) + +Automatizan el flujo **fuente (Git) → GAR → GAS**. Reemplazan el viejo folder +compartido de binarios. Solo **una persona** (release manager, Jhonny) despliega a +`.251`/producción, siempre desde fuente ya pulled de Git. + +## Máquinas +| Script | Dónde se corre | Qué hace | +|---|---|---| +| `build_mbs.cmd` | **PC con Genero Studio 6.00.03** (tiene `gsmake`) | `git pull` + compila el GAR → `PROYECTO\distbin\mbs.gar` | +| `deploy_mbs.cmd` | **Server `.251`** (consola donde corre `gasadmin`) | quita la versión anterior + despliega + habilita el GAR | + +> `.251` **no tiene GST**, por eso el build va en una PC con GST y el deploy en el server. + +## Flujo completo +1. **En tu PC** (con GST): + ``` + scripts\build_mbs.cmd + ``` + - Ajusta primero dentro del script: `REPO` (tu clon, ej. `C:\MBS`) y `GSMAKE` (ruta de tu GST). + - Produce `PROYECTO\distbin\mbs.gar`. + - (Opcional) descomenta `DEST` para que lo copie a un share del server. + +2. **Lleva `mbs.gar` al server `.251`** (copia por share, o el medio que uses). + +3. **En `.251`** (consola del GAS): + ``` + scripts\deploy_mbs.cmd C:\ruta\mbs.gar + ``` + - Hace: `disable` → `undeploy` → `clean-archives` → `deploy` → `enable`. + - Los mensajes *"Command failed / No archive to disable"* en el **primer** deploy son **normales** (no había versión previa). + +4. **Prueba**: `http://192.168.40.251:6394/ua/r/Application` + (si reconstruiste con `BinaryName=MAINMENU`, la URL será `/ua/r/MAINMENU`). + +## Notas +- El **nombre del archive** lo toma `deploy_mbs.cmd` del nombre del `.gar` + (`mbs.gar` → archive `mbs`). Si cambias el nombre del archivo, cambia el archive. +- El `.gar` **no se versiona en Git** (es artefacto). Se transfiere aparte. +- Si `gsmake` no arma el paquete, constrúyelo desde GST: clic derecho en el + paquete **`mbs` → Build** (también deja el `.gar` en `PROYECTO\distbin\`). +- **Recursos** (estilos `.4st`, imágenes): deben ir declarados como *Resources* + de la app en GST para que el GAR los empaquete. Si falta un `.4st`, el DVM + falla en runtime con `-8014 resource file ... can not be read`. +- Camino "one-click remoto" (a futuro): instalar **Genero Studio Server** en `.251` + y usar *Tools → Server Connections*; entonces GST despliega directo al GAS del + server. Por ahora, estos 2 scripts son el flujo estable. diff --git a/scripts/build_mbs.cmd b/scripts/build_mbs.cmd new file mode 100644 index 0000000..55271a7 --- /dev/null +++ b/scripts/build_mbs.cmd @@ -0,0 +1,68 @@ +@echo off +setlocal EnableExtensions +REM =========================================================================== +REM build_mbs.cmd - Baja lo ultimo de Git y compila el GAR del menu MBS +REM +REM >>> CORRER EN UNA PC CON GENERO STUDIO 6.00.03 (tiene gsmake) <<< +REM +REM Salida: \PROYECTO\distbin\mbs.gar +REM Luego ese .gar se lleva al server .251 y se corre deploy_mbs.cmd +REM =========================================================================== + +REM --- AJUSTA estas 2 rutas a tu PC --- +set "REPO=C:\MBS" +set "GSMAKE=C:\Program Files\FourJs\Genero Studio603\gst\bin\gsmake.exe" + +REM --- (normalmente no cambian) --- +set "PROJECT=%REPO%\PROYECTO\MBSerp_new3.4pw" +set "GAROUT=%REPO%\PROYECTO\distbin\mbs.gar" + +REM --- (OPCIONAL) copiar el GAR a un destino que vea el server .251 --- +REM Ej: un share del server. Deja vacio para no copiar. +set "DEST=" +REM set "DEST=\\192.168.40.251\deploy\mbs.gar" + +if not exist "%GSMAKE%" ( + echo [ERROR] No existe gsmake en: "%GSMAKE%" + echo Corrige la variable GSMAKE (ruta de tu Genero Studio). + exit /b 1 +) +if not exist "%PROJECT%" ( + echo [ERROR] No existe el proyecto: "%PROJECT%" + echo Corrige REPO o el nombre del .4pw. + exit /b 1 +) + +echo --- 1) git pull --- +pushd "%REPO%" || (echo [ERROR] No existe %REPO% & exit /b 1) +git pull +popd + +echo( +echo --- 2) Compilando GAR con gsmake --- +"%GSMAKE%" "%PROJECT%" +if errorlevel 1 ( + echo [ERROR] gsmake fallo. Abre el proyecto en GST y revisa los errores de build. + exit /b 1 +) + +if not exist "%GAROUT%" ( + echo [ERROR] No se genero el GAR esperado: %GAROUT% + echo Si gsmake no arma el paquete, construyelo desde GST: + echo clic derecho en el paquete "mbs" -^> Build + echo (tambien deja el .gar en PROYECTO\distbin\) + exit /b 1 +) +echo [OK] GAR generado: %GAROUT% + +if defined DEST ( + echo --- 3) Copiando a %DEST% --- + copy /Y "%GAROUT%" "%DEST%" + if errorlevel 1 echo [AVISO] No se pudo copiar a %DEST% (revisa el share/permiso^). +) + +echo( +echo LISTO. +echo GAR: %GAROUT% +echo Ahora en el server .251: deploy_mbs.cmd "ruta\mbs.gar" +endlocal diff --git a/scripts/deploy_mbs.cmd b/scripts/deploy_mbs.cmd new file mode 100644 index 0000000..0d26220 --- /dev/null +++ b/scripts/deploy_mbs.cmd @@ -0,0 +1,71 @@ +@echo off +setlocal EnableExtensions +REM =========================================================================== +REM deploy_mbs.cmd - Despliega el GAR del menu MBS en el GAS de ESTE server +REM +REM >>> CORRER EN EL SERVER (.251), en la consola donde funciona 'gasadmin' <<< +REM +REM Uso: deploy_mbs.cmd [ruta\al\mbs.gar] +REM Si no pasas ruta, busca mbs.gar en la carpeta actual. +REM +REM El nombre del ARCHIVE se toma del nombre del .gar (mbs.gar -> archive "mbs"). +REM =========================================================================== + +set "GAR=%~1" +if "%GAR%"=="" set "GAR=mbs.gar" +set "HOST=192.168.40.251" +set "PORT=6394" + +if not exist "%GAR%" ( + echo [ERROR] No se encuentra el GAR: "%GAR%" + echo Uso: %~nx0 [ruta\al\mbs.gar] + exit /b 1 +) + +REM --- nombre del archive = nombre del archivo sin extension --- +for %%F in ("%GAR%") do set "ARCHIVE=%%~nF" + +echo( +echo ============================================================ +echo DEPLOY MBS GAR="%GAR%" ARCHIVE=%ARCHIVE% +echo ============================================================ + +echo( +echo --- 1) Estado actual --- +gasadmin gar --list-archives + +echo( +echo --- 2) Quitando version anterior (los "Command failed / No archive" aqui son NORMALES en el 1er deploy) --- +gasadmin gar --disable-archive %ARCHIVE% +gasadmin gar --undeploy-archive %ARCHIVE% -y +gasadmin gar --clean-archives + +echo( +echo --- 3) Desplegando nueva version --- +gasadmin gar --deploy-archive "%GAR%" -y +if errorlevel 1 ( + echo [ERROR] Fallo el deploy del GAR. + exit /b 1 +) + +echo( +echo --- 4) Habilitando --- +gasadmin gar --enable-archive %ARCHIVE% +if errorlevel 1 ( + echo [ERROR] Fallo al habilitar el archive. + exit /b 1 +) + +echo( +echo --- 5) Estado final --- +gasadmin gar --list-archives + +echo( +echo ============================================================ +echo LISTO. Abre en el navegador: +echo http://%HOST%:%PORT%/ua/r/Application +echo ============================================================ +echo Nota: si reconstruiste con BinaryName=MAINMENU, la app se +echo llamara MAINMENU y la URL sera /ua/r/MAINMENU +echo( +endlocal