in repository-tools/src/main/kotlin/updateComposeDevVersion.kt [11:48]
fun main() {
val process = ProcessBuilder.startPipeline(
listOf(
ProcessBuilder("curl", "-s", "https://api.github.com/repos/JetBrains/compose-multiplatform/tags"),
ProcessBuilder("jq", "-r", ".[].name").redirectError(ProcessBuilder.Redirect.INHERIT)
)
).last()
val versions = process.inputStream.reader().readText().lines()
.map { it.trim().removePrefix("v") }
.filter { it.isNotEmpty() }
if (process.waitFor() != 0) error("Failed to fetch tags")
val latestDevVersion = versions.first { composeDevVersionRegex.matches(it) }
val testDimensions = Path(".teamcity/testDimensions.json")
val testDimensionsContent = testDimensions.readText()
versions.forEach { version ->
if (version.matches(composeDevVersionRegex) && version in testDimensionsContent) {
if (version == latestDevVersion) {
println("Latest dev version '$latestDevVersion' is UP-TO-DATE")
return
}
println("Replacing '$version' with '$latestDevVersion")
ensureCleanWorkingDirectory()
testDimensions.toFile().writeText(testDimensionsContent.replace(version, latestDevVersion))
command("git", "add", ".")
command("git", "commit", "-m", "Update Compose dev version to '$latestDevVersion'")
return
}
}
error("Cannot update Compose dev version; No known dev versions found in '${testDimensions.fileName}'")
}