From 15478b5fd449ffa1fdf78d0f5551aa73a5c278a0 Mon Sep 17 00:00:00 2001 From: Kurdistan Tech Ministry Date: Sat, 24 Jan 2026 09:34:15 +0300 Subject: [PATCH] Auto-increment versionCode on each build - Reads/writes VERSION_CODE from version.properties - Increments on assemble/install tasks - CI builds still use CI_BUILD_ID --- .gitignore | 2 +- scripts/versions.gradle | 27 ++++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index c8f86df..e086cd3 100644 --- a/.gitignore +++ b/.gitignore @@ -26,4 +26,4 @@ app/*.apk !/core-db/schemas/io.novafoundation.nova.core_db.AppDatabase/8.json !/core-db/schemas/io.novafoundation.nova.core_db.AppDatabase/9.json -google-services.json \ No newline at end of file +google-services.jsonversion.properties diff --git a/scripts/versions.gradle b/scripts/versions.gradle index 59c57cf..0b9a2d7 100644 --- a/scripts/versions.gradle +++ b/scripts/versions.gradle @@ -1,9 +1,34 @@ +def getVersionCodeFromFile() { + def versionFile = new File(rootProject.projectDir, 'version.properties') + if (!versionFile.exists()) { + versionFile.text = 'VERSION_CODE=1' + } + def props = new Properties() + props.load(versionFile.newDataInputStream()) + return props.getProperty('VERSION_CODE', '1').toInteger() +} + +def incrementVersionCode() { + def versionFile = new File(rootProject.projectDir, 'version.properties') + def currentCode = getVersionCodeFromFile() + def newCode = currentCode + 1 + versionFile.text = "VERSION_CODE=${newCode}" + return newCode +} + def computeVersionName() { return "$rootProject.versionName" } def computeVersionCode() { - return Integer.valueOf(System.env.CI_BUILD_ID ?: rootProject.versionCode) + if (System.env.CI_BUILD_ID) { + return Integer.valueOf(System.env.CI_BUILD_ID) + } + // Local build - auto increment + if (gradle.startParameter.taskNames.any { it.contains('assemble') || it.contains('install') }) { + return incrementVersionCode() + } + return getVersionCodeFromFile() } def static releaseNotes() {