JSOTO GAR

This commit is contained in:
2026-08-24 19:45:31 -04:00
parent 10e4565b8d
commit a7a8b9010d
3 changed files with 186 additions and 0 deletions
+47
View File
@@ -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.
+68
View File
@@ -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: <REPO>\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
+71
View File
@@ -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