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
This commit is contained in:
2026-01-24 09:34:15 +03:00
parent 4d91cbd392
commit 15478b5fd4
2 changed files with 27 additions and 2 deletions
+1 -1
View File
@@ -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
google-services.jsonversion.properties
+26 -1
View File
@@ -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() {