For release builds use last commit time as build time (#1873)

This commit is contained in:
AntsyLich
2025-03-19 05:16:03 +06:00
committed by GitHub
parent 4c6bc8e830
commit dae7d17966
2 changed files with 10 additions and 3 deletions

View File

@ -49,6 +49,8 @@ android {
isShrinkResources = Config.enableCodeShrink
proguardFiles("proguard-android-optimize.txt", "proguard-rules.pro")
buildConfigField("String", "BUILD_TIME", "\"${getBuildTime(useLastCommitTime = true)}\"")
}
val commonMatchingFallbacks = listOf(release.name)

View File

@ -1,6 +1,7 @@
package mihon.buildlogic
import org.gradle.api.Project
import java.time.Instant
import java.time.LocalDateTime
import java.time.ZoneOffset
import java.time.format.DateTimeFormatter
@ -19,9 +20,13 @@ fun Project.getGitSha(): String {
private val BUILD_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'")
@Suppress("UnusedReceiverParameter")
fun Project.getBuildTime(): String {
return LocalDateTime.now(ZoneOffset.UTC).format(BUILD_TIME_FORMATTER)
fun Project.getBuildTime(useLastCommitTime: Boolean = false): String {
return if (useLastCommitTime) {
val epoch = runCommand("git log -1 --format=%ct").toLong()
Instant.ofEpochSecond(epoch).atOffset(ZoneOffset.UTC).format(BUILD_TIME_FORMATTER)
} else {
LocalDateTime.now(ZoneOffset.UTC).format(BUILD_TIME_FORMATTER)
}
}
private fun Project.runCommand(command: String): String {