diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 6b5a3ed..54504d9 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -9,21 +9,25 @@ plugins { } // ── Git-based versioning ──────────────────────────────────── +// Version name from latest git tag (e.g. v0.1.0 -> "0.1.0") fun gitVersionName(): String = runGit("describe", "--tags", "--abbrev=0") .removePrefix("v") .ifEmpty { "0.1.0" } -fun gitCommitCount(): Int = runGit("rev-list", "--count", "HEAD") - .toIntOrNull() ?: 1 +// Build number = total commits (always increments) + offset for store history +const val VERSION_CODE_OFFSET = 4 +fun gitBuildNumber(): Int = (runGit("rev-list", "--count", "HEAD") + .toIntOrNull() ?: 1) + VERSION_CODE_OFFSET fun gitShortHash(): String = runGit("rev-parse", "--short", "HEAD") .ifEmpty { "unknown" } +// Display: "0.1.0+5.abc1234" fun gitDisplayVersion(): String { val base = gitVersionName() - val count = gitCommitCount() + val build = gitBuildNumber() val hash = gitShortHash() - return "$base+$count.$hash" + return "$base+$build.$hash" } fun runGit(vararg args: String): String = try { @@ -59,7 +63,7 @@ android { applicationId = "com.omixlab.lckcontrol" minSdk = 32 targetSdk = 34 - versionCode = gitCommitCount() + versionCode = gitBuildNumber() versionName = gitVersionName() buildConfigField("String", "DISPLAY_VERSION", "\"${gitDisplayVersion()}\"") diff --git a/deploy.ps1 b/deploy.ps1 index 9d197c0..d52b3a3 100644 --- a/deploy.ps1 +++ b/deploy.ps1 @@ -10,20 +10,18 @@ $ErrorActionPreference = "Stop" $AppId = "25653777174321448" $Token = "OC|25653777174321448|b861e3eeaf58edf097812b5fe588dabb" -$BuildGradle = "$PSScriptRoot\app\build.gradle.kts" $OvrUtil = "$PSScriptRoot\ovr-platform-util.exe" -# --- Bump versionCode --- -$content = Get-Content $BuildGradle -Raw -if ($content -match 'versionCode\s*=\s*(\d+)') { - $oldCode = [int]$Matches[1] - $newCode = $oldCode + 1 - $content = $content -replace "versionCode\s*=\s*$oldCode", "versionCode = $newCode" - Set-Content $BuildGradle $content -NoNewline - Write-Host "Bumped versionCode: $oldCode -> $newCode" -ForegroundColor Cyan -} else { - Write-Error "Could not find versionCode in build.gradle.kts" -} +# --- Git version info --- +$versionName = (git describe --tags --abbrev=0 2>$null) -replace '^v', '' +if (-not $versionName) { $versionName = "0.1.0" } +$commitCount = git rev-list --count HEAD 2>$null +if (-not $commitCount) { $commitCount = "1" } +$shortHash = git rev-parse --short HEAD 2>$null +if (-not $shortHash) { $shortHash = "unknown" } +$displayVersion = "$versionName+$commitCount.$shortHash" + +Write-Host "Version: $displayVersion (versionCode=$commitCount)" -ForegroundColor Cyan # --- Build APK --- $task = if ($BuildType -eq "release") { ":app:assembleRelease" } else { ":app:assembleDebug" } @@ -44,8 +42,8 @@ Write-Host "Uploading to channel '$Channel'..." -ForegroundColor Cyan --apk $apk ` --channel $Channel ` --age-group MIXED_AGES ` - --notes "v$newCode $BuildType build" + --notes "$displayVersion $BuildType build" if ($LASTEXITCODE -ne 0) { Write-Error "Upload failed" } -Write-Host "Deployed versionCode $newCode ($BuildType) to '$Channel'" -ForegroundColor Green +Write-Host "Deployed $displayVersion ($BuildType) to '$Channel'" -ForegroundColor Green