refactor: migrate Android version update script to Kotlin DSL and remove Groovy version (#288)

* refactor: migrate Android version update script to Kotlin DSL and remove Groovy version

* fix: correct file extension for Android version update script in workflows

* docs: restore comment
This commit is contained in:
Eligio Mariño
2025-02-15 17:16:05 +01:00
committed by GitHub
parent 2ee61ec53e
commit 2e59fdfb0a
4 changed files with 38 additions and 37 deletions
+1 -1
View File
@@ -189,7 +189,7 @@ jobs:
- name: Update default Android platform versions in Flutter
working-directory: test_app/android
run: |
cat ../../script/updateAndroidVersions.gradle >> app/build.gradle
cat ../../script/updateAndroidVersions.gradle.kts >> app/build.gradle.kts
./gradlew --warning-mode all updateAndroidVersions
- name: Setup Cue for JSON validation
@@ -66,7 +66,7 @@ jobs:
- name: Update default Android platform versions in Flutter
working-directory: test_app/android
run: |
cat ../../script/updateAndroidVersions.gradle >> app/build.gradle
cat ../../script/updateAndroidVersions.gradle.kts >> app/build.gradle.kts
./gradlew --warning-mode all updateAndroidVersions
- name: Clean test application
-35
View File
@@ -1,35 +0,0 @@
// Snippet to include at the end of android/app/build.gradle
import groovy.json.JsonSlurper
import groovy.json.JsonOutput
tasks.register('updateAndroidVersions') {
doLast {
final jsonFile = new File('../../config/version.json')
final resultJsonMap = new JsonSlurper().parseText(jsonFile.text)
final rawPlatformVersions = [
flutter.targetSdkVersion,
flutter.compileSdkVersion
]
final platformVersions = rawPlatformVersions.unique()
final newJsonMap = [
android :[
platforms: platformVersions.collect {
[version: it]
},
gradle: [version: gradle.gradleVersion]
]
]
resultJsonMap.android.putAll(newJsonMap.android)
println resultJsonMap
final jsonStr = JsonOutput.toJson(resultJsonMap)
final prettyStr = JsonOutput.prettyPrint(jsonStr)
jsonFile.write("${prettyStr}\n")
}
}
+36
View File
@@ -0,0 +1,36 @@
// Snippet to include at the end of android/app/build.gradle.kts
tasks.register<DefaultTask>("updateAndroidVersions") {
doLast {
val jsonFile = File("../../config/version.json")
// Parse existing JSON file
val resultJsonMap = groovy.json.JsonSlurper().parseText(jsonFile.readText()) as MutableMap<String, Any>
// Get unique platform versions
val platformVersions = listOf(
flutter.targetSdkVersion,
flutter.compileSdkVersion
).distinct()
// Create new Android version data
val newJsonMap = mapOf(
"platforms" to platformVersions.map {
mapOf("version" to it)
},
"gradle" to mapOf("version" to gradle.gradleVersion)
)
// Merge new values into the existing JSON structure
(resultJsonMap["android"] as? MutableMap<String, Any>)?.putAll(newJsonMap)
// Format JSON with pretty printing
val jsonStr = groovy.json.JsonOutput.toJson(resultJsonMap)
val prettyStr = groovy.json.JsonOutput.prettyPrint(jsonStr)
println(prettyStr)
// Write updated JSON back to the file
jsonFile.writeText("$prettyStr\n")
}
}