Usage : build-proserve-zip.bat 1.5.3 → lit version\proserve-1.5.3\ → produit version\proserve-1.5.3.zip (binaires UE5 + _migrations + _report) → affiche taille + SHA-256 Auto-détecte 7-Zip s'il est installé (multi-thread, 3-5x plus rapide sur 14 Go). Fallback sur PowerShell Compress-Archive (mono-thread) sinon. Sans argument : liste les versions disponibles dans version\. Avec checks : warn si _migrations/ ou _report/ ou PROSERVE_UE_5_5.exe manquent (continue après 5s). Sortie pédagogique à la fin : prochaines étapes (SFTP upload + actions backoffice à effectuer). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
138 lines
4.9 KiB
Batchfile
138 lines
4.9 KiB
Batchfile
@echo off
|
|
REM ========================================================================
|
|
REM build-proserve-zip.bat
|
|
REM Crée le ZIP de release d'une version PROSERVE prêt à uploader sur OVH.
|
|
REM
|
|
REM Usage :
|
|
REM build-proserve-zip.bat 1.5.3
|
|
REM
|
|
REM Le script :
|
|
REM 1. Lit version\proserve-X.Y.Z\ (binaires UE5 + _migrations\ + _report\)
|
|
REM 2. Compresse en version\proserve-X.Y.Z.zip
|
|
REM 3. Affiche taille + SHA-256 (à recopier dans le backoffice si tu veux
|
|
REM eviter le hash automatique côté serveur, sinon laisse le serveur le
|
|
REM faire au moment du « Hasher + signer »)
|
|
REM
|
|
REM Outils :
|
|
REM - 7-Zip si installé (multi-threading, ~3-5x plus rapide sur 14 Go)
|
|
REM - PowerShell Compress-Archive en fallback (mono-thread, lent)
|
|
REM
|
|
REM Sortie : version\proserve-X.Y.Z.zip à uploader vers
|
|
REM www/PS_Launcher/builds/proserve-X.Y.Z.zip via SFTP.
|
|
REM ========================================================================
|
|
|
|
setlocal EnableDelayedExpansion
|
|
|
|
if "%~1"=="" (
|
|
echo.
|
|
echo Usage : build-proserve-zip.bat ^<version^>
|
|
echo Exemple : build-proserve-zip.bat 1.5.3
|
|
echo.
|
|
echo Versions disponibles dans version\ :
|
|
for /D %%D in ("%~dp0version\proserve-*") do echo %%~nxD
|
|
echo.
|
|
exit /b 1
|
|
)
|
|
|
|
set "VERSION=%~1"
|
|
set "REPO=%~dp0"
|
|
set "SRC=%REPO%version\proserve-%VERSION%"
|
|
set "OUT=%REPO%version\proserve-%VERSION%.zip"
|
|
|
|
if not exist "%SRC%" (
|
|
echo [ERREUR] Dossier source introuvable : %SRC%
|
|
echo Liste des versions disponibles :
|
|
for /D %%D in ("%REPO%version\proserve-*") do echo %%~nxD
|
|
exit /b 1
|
|
)
|
|
|
|
REM Sanity-check que les sous-dossiers attendus sont là
|
|
if not exist "%SRC%\PROSERVE_UE_5_5.exe" (
|
|
echo [WARN] %SRC%\PROSERVE_UE_5_5.exe absent — c'est normal ? Continuer dans 5s, Ctrl+C pour annuler...
|
|
timeout /t 5 >nul
|
|
)
|
|
if not exist "%SRC%\_migrations" (
|
|
echo [WARN] %SRC%\_migrations\ absent — pas de migrations DB dans cette release.
|
|
)
|
|
if not exist "%SRC%\_report" (
|
|
echo [WARN] %SRC%\_report\ absent — pas d'outil Report dans cette release.
|
|
)
|
|
|
|
if exist "%OUT%" (
|
|
echo [INFO] Suppression du zip existant : %OUT%
|
|
del /Q "%OUT%"
|
|
)
|
|
|
|
REM ----- 7-Zip si disponible -----
|
|
set "SEVENZIP="
|
|
if exist "C:\Program Files\7-Zip\7z.exe" set "SEVENZIP=C:\Program Files\7-Zip\7z.exe"
|
|
if exist "C:\Program Files (x86)\7-Zip\7z.exe" set "SEVENZIP=C:\Program Files (x86)\7-Zip\7z.exe"
|
|
|
|
echo.
|
|
echo ========================================================================
|
|
echo Compression de proserve-%VERSION% (peut prendre 5-30 min selon la taille)
|
|
echo Source : %SRC%
|
|
echo Sortie : %OUT%
|
|
echo ========================================================================
|
|
echo.
|
|
|
|
if defined SEVENZIP (
|
|
echo [INFO] Utilisation de 7-Zip multi-thread (rapide)
|
|
REM -tzip format ZIP standard ^(compatible avec ce que le launcher attend^)
|
|
REM -mx=5 compression normale ^(mx=9 ultra serait 2x plus lent pour ~5%% de gain^)
|
|
REM -mmt=on multi-thread
|
|
REM -bsp1 progress sur stderr
|
|
REM Le * en fin de chemin source = on zippe le CONTENU du dossier, pas le dossier lui-meme
|
|
"%SEVENZIP%" a -tzip -mx=5 -mmt=on -bsp1 "%OUT%" "%SRC%\*"
|
|
set "EXITCODE=!ERRORLEVEL!"
|
|
) else (
|
|
echo [INFO] 7-Zip non trouve, fallback sur PowerShell Compress-Archive ^(lent^).
|
|
echo Pour accelerer, installe 7-Zip depuis https://www.7-zip.org/
|
|
echo.
|
|
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
|
|
"Compress-Archive -Path '%SRC%\*' -DestinationPath '%OUT%' -CompressionLevel Optimal -Force"
|
|
set "EXITCODE=!ERRORLEVEL!"
|
|
)
|
|
|
|
if !EXITCODE! NEQ 0 (
|
|
echo.
|
|
echo [ECHEC] Compression echouee avec le code !EXITCODE!.
|
|
exit /b !EXITCODE!
|
|
)
|
|
|
|
if not exist "%OUT%" (
|
|
echo [ECHEC] Le fichier %OUT% n'a pas ete cree.
|
|
exit /b 1
|
|
)
|
|
|
|
echo.
|
|
echo ========================================================================
|
|
echo [OK] Zip cree avec succes
|
|
echo ========================================================================
|
|
echo.
|
|
echo Fichier : %OUT%
|
|
for %%I in ("%OUT%") do (
|
|
set "SIZE=%%~zI"
|
|
echo Taille : !SIZE! octets ^(~%%~zI bytes^)
|
|
)
|
|
|
|
echo.
|
|
echo Calcul du SHA-256 ^(peut prendre 30s-2min selon la taille^)...
|
|
powershell -NoProfile -Command ^
|
|
"$h = (Get-FileHash '%OUT%' -Algorithm SHA256).Hash.ToLower(); Write-Host SHA-256 : $h"
|
|
|
|
echo.
|
|
echo ========================================================================
|
|
echo Prochaines etapes :
|
|
echo 1. SFTP upload vers : www/PS_Launcher/builds/proserve-%VERSION%.zip
|
|
echo 2. Backoffice -^> Versions -^> verifier que l'entree v%VERSION% existe
|
|
echo ^(sinon ajoute-la avec date d'expiration min_license_date^)
|
|
echo 3. Cliquer ligne v%VERSION% -^> bouton "Hasher cette version"
|
|
echo ^(ou bouton global "Hasher les versions + signer"^)
|
|
echo 4. Le manifest est re-signe Ed25519, les clients verront la version
|
|
echo au prochain "Verifier les MAJ".
|
|
echo ========================================================================
|
|
echo.
|
|
endlocal
|
|
pause
|