mirror of
https://github.com/gmeligio/flutter-docker-image.git
synced 2026-05-24 12:30:34 +00:00
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:
@@ -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
|
||||
|
||||
@@ -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")
|
||||
}
|
||||
}
|
||||
@@ -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")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user