Add support for -prod configuration in build_x64.bat, including API and manifest switching. Replace SCP with CURL for update uploads.
This commit is contained in:
parent
f179c581d0
commit
92e754ef6b
@ -38,11 +38,41 @@ if "!FLAG_UPVERSION!"=="1" (
|
||||
echo Version: !CURRENT_VERSION!
|
||||
)
|
||||
|
||||
REM При -prod добавляем prod в имя архива
|
||||
set PROD_SUFFIX=
|
||||
if "!FLAG_PROD!"=="1" set PROD_SUFFIX=_prod
|
||||
REM Канал обновлений и суффикс имени архива по флагу -prod
|
||||
if "!FLAG_PROD!"=="1" (
|
||||
set CHANNEL=prod
|
||||
set PROD_SUFFIX=_prod
|
||||
) else (
|
||||
set CHANNEL=test
|
||||
set PROD_SUFFIX=
|
||||
)
|
||||
set ZIP_NAME=ARC_x64_!CURRENT_VERSION!!PROD_SUFFIX!.zip
|
||||
|
||||
REM Переключаем apiBase по флагу -prod: -prod → apiBaseProd, иначе apiBaseTest.
|
||||
REM Значения берём из самого config.ini, переписываем строку apiBase= (не трогая
|
||||
REM apiBaseTest=/apiBaseProd= и закомментированный #apiBase=).
|
||||
for /f "tokens=2 delims==" %%V in ('findstr /b /i "apiBaseTest=" "%CONFIG_FILE%"') do set API_TEST=%%V
|
||||
for /f "tokens=2 delims==" %%V in ('findstr /b /i "apiBaseProd=" "%CONFIG_FILE%"') do set API_PROD=%%V
|
||||
if "!FLAG_PROD!"=="1" (
|
||||
set API_TARGET=!API_PROD!
|
||||
) else (
|
||||
set API_TARGET=!API_TEST!
|
||||
)
|
||||
powershell -NoProfile -Command "(Get-Content '!CONFIG_FILE!') -replace '^apiBase=.*$', 'apiBase=!API_TARGET!' | Set-Content '!CONFIG_FILE!'"
|
||||
echo apiBase set to: !API_TARGET!
|
||||
|
||||
REM Переключаем manifestUrl по флагу -prod (канал обновлений). Значения берём из
|
||||
REM config.ini, переписываем строку manifestUrl= (не трогая manifestUrlTest=/Prod=).
|
||||
for /f "tokens=2 delims==" %%V in ('findstr /b /i "manifestUrlTest=" "%CONFIG_FILE%"') do set MAN_TEST=%%V
|
||||
for /f "tokens=2 delims==" %%V in ('findstr /b /i "manifestUrlProd=" "%CONFIG_FILE%"') do set MAN_PROD=%%V
|
||||
if "!FLAG_PROD!"=="1" (
|
||||
set MAN_TARGET=!MAN_PROD!
|
||||
) else (
|
||||
set MAN_TARGET=!MAN_TEST!
|
||||
)
|
||||
powershell -NoProfile -Command "(Get-Content '!CONFIG_FILE!') -replace '^manifestUrl=.*$', 'manifestUrl=!MAN_TARGET!' | Set-Content '!CONFIG_FILE!'"
|
||||
echo manifestUrl set to: !MAN_TARGET!
|
||||
|
||||
echo === [1/5] Configuring CMake for x64 Release ===
|
||||
if not exist "%BUILD_DIR%" mkdir "%BUILD_DIR%"
|
||||
cd /d "%BUILD_DIR%"
|
||||
@ -77,10 +107,12 @@ if %ERRORLEVEL% neq 0 (
|
||||
|
||||
echo === [5/5] Uploading to update server and sending link to Telegram ===
|
||||
|
||||
REM Целевой сервер обновлений (нужен настроенный SSH-ключ для root@%UPDATE_HOST%).
|
||||
REM Сервер обновлений: загрузка по HTTP PUT (WebDAV nginx) с Basic-Auth — без SSH.
|
||||
set UPDATE_HOST=142.93.102.40
|
||||
set UPDATE_DIR=/var/www/updates
|
||||
set DOWNLOAD_URL=http://%UPDATE_HOST%/updates/%ZIP_NAME%
|
||||
set UPDATE_USER=arcdeploy
|
||||
set UPDATE_PASS=57d5f7098b9347ee36895f865596b9a39f75
|
||||
set UPDATE_BASE=http://%UPDATE_HOST%/updates/%CHANNEL%
|
||||
set DOWNLOAD_URL=%UPDATE_BASE%/%ZIP_NAME%
|
||||
|
||||
REM SHA256 архива — для проверки целостности на клиенте.
|
||||
for /f "delims=" %%H in ('powershell -NoProfile -Command "(Get-FileHash '%PROJECT_DIR%%ZIP_NAME%' -Algorithm SHA256).Hash.ToLower()"') do set ZIP_SHA256=%%H
|
||||
@ -88,7 +120,7 @@ echo SHA256: !ZIP_SHA256!
|
||||
|
||||
REM Сначала заливаем zip, потом манифест — чтобы клиент не увидел version.json
|
||||
REM на ещё не загруженный архив.
|
||||
scp "%PROJECT_DIR%%ZIP_NAME%" root@%UPDATE_HOST%:%UPDATE_DIR%/%ZIP_NAME%
|
||||
curl -f -s -S -T "%PROJECT_DIR%%ZIP_NAME%" -u "%UPDATE_USER%:%UPDATE_PASS%" "%UPDATE_BASE%/%ZIP_NAME%"
|
||||
if %ERRORLEVEL% neq 0 (
|
||||
echo ERROR: Failed to upload archive to update server
|
||||
exit /b 1
|
||||
@ -97,7 +129,7 @@ if %ERRORLEVEL% neq 0 (
|
||||
REM Генерируем version.json (UTF-8 без BOM — иначе QJsonDocument::fromJson падает)
|
||||
REM и заливаем последним.
|
||||
powershell -NoProfile -Command "$j = @{ latestVersion='!CURRENT_VERSION!'; zipUrl='!DOWNLOAD_URL!'; sha256='!ZIP_SHA256!'; minVersion='1.0.0'; notes='Обновление ARC'; mandatory=$false } | ConvertTo-Json; [System.IO.File]::WriteAllText('%PROJECT_DIR%version.json', $j, (New-Object System.Text.UTF8Encoding($false)))"
|
||||
scp "%PROJECT_DIR%version.json" root@%UPDATE_HOST%:%UPDATE_DIR%/version.json
|
||||
curl -f -s -S -T "%PROJECT_DIR%version.json" -u "%UPDATE_USER%:%UPDATE_PASS%" "%UPDATE_BASE%/version.json"
|
||||
if %ERRORLEVEL% neq 0 (
|
||||
echo ERROR: Failed to upload version.json to update server
|
||||
exit /b 1
|
||||
|
||||
@ -10,6 +10,8 @@ dbPath=./database/app_data.db
|
||||
|
||||
[net]
|
||||
apiBase=http://93.183.75.134:8005
|
||||
apiBaseTest=http://93.183.75.134:8005
|
||||
apiBaseProd=http://78.140.243.128:8000
|
||||
#apiBase=http://127.0.0.1:8888
|
||||
pathAuthLogin=/api/v1/auth/login
|
||||
pathAuthRefresh=/api/v1/auth/refresh_token
|
||||
@ -25,7 +27,9 @@ monitoringBase=http://142.93.102.40:8080
|
||||
monitoringToken=509b91592749959b9ff56f9ed9189e5b3e91e1260003f63c477255e1c187298a
|
||||
|
||||
[update]
|
||||
manifestUrl=http://142.93.102.40/updates/version.json
|
||||
manifestUrl=http://142.93.102.40/updates/test/version.json
|
||||
manifestUrlTest=http://142.93.102.40/updates/test/version.json
|
||||
manifestUrlProd=http://142.93.102.40/updates/prod/version.json
|
||||
|
||||
[black]
|
||||
android_package_name=app.blackwallet.ar
|
||||
|
||||
Loading…
Reference in New Issue
Block a user