build-proserve-zip.bat : zippe une release PROSERVE prête à uploader
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>
This commit is contained in:
137
build-proserve-zip.bat
Normal file
137
build-proserve-zip.bat
Normal file
@@ -0,0 +1,137 @@
|
||||
@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
|
||||
Reference in New Issue
Block a user