diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 35d20f513..fc6ae082b 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -71,6 +71,8 @@ android { isMinifyEnabled = true isShrinkResources = true setProguardFiles(listOf(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")) + + buildConfigField("String", "BUILD_TIME", "\"${getBuildTime(useLastCommitTime = true)}\"") } create("benchmark") { initWith(getByName("release")) diff --git a/buildSrc/src/main/kotlin/mihon/buildlogic/Commands.kt b/buildSrc/src/main/kotlin/mihon/buildlogic/Commands.kt index bfffb8883..850364a31 100644 --- a/buildSrc/src/main/kotlin/mihon/buildlogic/Commands.kt +++ b/buildSrc/src/main/kotlin/mihon/buildlogic/Commands.kt @@ -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 {