Initial QMAX production app
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
param(
|
||||
[string]$Version = "0.1.0",
|
||||
[int]$VersionCode = 1,
|
||||
[string]$Channel = "stable"
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
$root = Resolve-Path "$PSScriptRoot\.."
|
||||
$apk = Join-Path $root "android\app\build\outputs\apk\release\app-release.apk"
|
||||
$releaseDir = Join-Path $root "deploy\releases\android"
|
||||
|
||||
Push-Location (Join-Path $root "android")
|
||||
try {
|
||||
.\gradlew.bat :app:assembleRelease --console=plain --no-daemon
|
||||
}
|
||||
finally {
|
||||
Pop-Location
|
||||
}
|
||||
|
||||
if (!(Test-Path $apk)) {
|
||||
throw "Release APK was not produced: $apk"
|
||||
}
|
||||
|
||||
New-Item -ItemType Directory -Force -Path $releaseDir | Out-Null
|
||||
$targetName = "qmax-$Version-$Channel.apk"
|
||||
$target = Join-Path $releaseDir $targetName
|
||||
Copy-Item -LiteralPath $apk -Destination $target -Force
|
||||
|
||||
$hash = (Get-FileHash -Algorithm SHA256 -LiteralPath $target).Hash.ToLowerInvariant()
|
||||
$size = (Get-Item -LiteralPath $target).Length
|
||||
$manifest = [ordered]@{
|
||||
slug = "qmax"
|
||||
name = "QMAX"
|
||||
version = $Version
|
||||
androidVersionCode = $VersionCode
|
||||
channel = $Channel
|
||||
platform = "android"
|
||||
packageKind = "apk"
|
||||
downloadPath = "/api/app-updates/android/download/$targetName"
|
||||
packageSizeBytes = $size
|
||||
sha256 = $hash
|
||||
notes = "QMAX $Version"
|
||||
publishedAt = (Get-Date).ToUniversalTime().ToString("O")
|
||||
}
|
||||
|
||||
$manifestJson = $manifest | ConvertTo-Json -Depth 4
|
||||
$utf8NoBom = New-Object System.Text.UTF8Encoding($false)
|
||||
[System.IO.File]::WriteAllText((Join-Path $releaseDir "latest.json"), $manifestJson, $utf8NoBom)
|
||||
Write-Host "Packaged $targetName"
|
||||
Write-Host "SHA-256 $hash"
|
||||
Reference in New Issue
Block a user