From 8eee08b28fe7e3437210551f3b086eaa0f353d0a Mon Sep 17 00:00:00 2001 From: Joseph Hale Date: Wed, 24 Apr 2024 22:23:06 -0700 Subject: [PATCH] build: Make Android build numbers more consistent The build number was being incremented when creating debug builds, making it harder to roll back versions while switch between branches. Now, fastlane is reponsible for the version name and code, which ensures that they are handled on every production build, and are completed prior to the actual compilation of the app. --- android/app/versionCode.gradle | 16 ++++++---------- android/app/versionName.gradle | 17 ++++++----------- android/gradle.properties | 6 +++--- fastlane/Fastfile | 2 ++ package.json | 2 +- 5 files changed, 18 insertions(+), 25 deletions(-) diff --git a/android/app/versionCode.gradle b/android/app/versionCode.gradle index 10fecd9..c43d012 100644 --- a/android/app/versionCode.gradle +++ b/android/app/versionCode.gradle @@ -1,15 +1,11 @@ // Adapted from: // https://gist.github.com/carloscuesta/678668da906bb80bdd22c8fd690c4fc4 -tasks.whenTaskAdded { task -> - if (task.name == 'bundleRelease') { - incrementVersionCode() - } -} - -def incrementVersionCode() { - def versionCode = Integer.parseInt(VERSION_CODE) + 1 - ant.propertyfile(file: "../gradle.properties") { - entry(key: "VERSION_CODE", value: versionCode) +task incrementVersionCode { + doLast { + def versionCode = Integer.parseInt(VERSION_CODE) + 1 + ant.propertyfile(file: "../gradle.properties") { + entry(key: "VERSION_CODE", value: versionCode) + } } } \ No newline at end of file diff --git a/android/app/versionName.gradle b/android/app/versionName.gradle index c147a51..68b7347 100644 --- a/android/app/versionName.gradle +++ b/android/app/versionName.gradle @@ -1,20 +1,15 @@ // Adapted from: https://stackoverflow.com/a/54146923/14765128 import groovy.json.JsonSlurper -tasks.whenTaskAdded { task -> - if (task.name == 'bundleRelease') { - syncVersionNameFromPackageJson() +task syncVersionName { + doLast { + def versionName = getVersionFromNpm() + ant.propertyfile(file: "../gradle.properties") { + entry(key: "VERSION_NAME", value: versionName) + } } } -def syncVersionNameFromPackageJson() { - def versionName = getVersionFromNpm() - ant.propertyfile(file: "../gradle.properties") { - entry(key: "VERSION_NAME", value: versionName) - } -} - - def getVersionFromNpm() { def inputFile = new File("$rootDir/../package.json") def packageJson = new JsonSlurper().parseText(inputFile.text) diff --git a/android/gradle.properties b/android/gradle.properties index c0f5642..2d148b1 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,4 +1,4 @@ -#Fri, 29 Mar 2024 22:51:47 -0700 +#Wed, 24 Apr 2024 22:18:31 -0700 # Project-wide Gradle settings. # IDE (e.g. Android Studio) users: @@ -41,5 +41,5 @@ newArchEnabled=false # If set to false, you will be using JSC instead. hermesEnabled=true -VERSION_CODE=64 -VERSION_NAME=1.1.3 +VERSION_CODE=65 +VERSION_NAME=1.1.4 diff --git a/fastlane/Fastfile b/fastlane/Fastfile index d8af048..82c54b4 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -84,6 +84,8 @@ platform :android do desc "Build the Android application." lane :build do + gradle(task: 'incrementVersionCode', project_dir: 'android/') + gradle(task: 'syncVersionName', project_dir: 'android/') gradle(task: 'clean', project_dir: 'android/') gradle(task: 'bundle', build_type: 'Release', project_dir: 'android/') end diff --git a/package.json b/package.json index 67774b3..56121ee 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "binaryclock", - "version": "1.1.3", + "version": "1.1.4", "private": true, "scripts": { "env": "dotenv -e ./fastlane/.env", -- 2.51.2