From 935f1fcf3f8e4f9da4774d932b65ae77b44cc773 Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Wed, 19 Mar 2025 16:17:43 +0600 Subject: [PATCH] Use current time as build time for preview builds (#1876) --- app/build.gradle.kts | 4 +++- buildSrc/src/main/kotlin/mihon/buildlogic/Commands.kt | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 1b6071928..632d5dd5a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -31,7 +31,7 @@ android { buildConfigField("String", "COMMIT_COUNT", "\"${getCommitCount()}\"") buildConfigField("String", "COMMIT_SHA", "\"${getGitSha()}\"") - buildConfigField("String", "BUILD_TIME", "\"${getBuildTime()}\"") + buildConfigField("String", "BUILD_TIME", "\"${getBuildTime(useLastCommitTime = false)}\"") buildConfigField("boolean", "TELEMETRY_INCLUDED", "${Config.includeTelemetry}") buildConfigField("boolean", "UPDATER_ENABLED", "${Config.enableUpdater}") @@ -71,6 +71,8 @@ android { signingConfig = debug.signingConfig matchingFallbacks.addAll(commonMatchingFallbacks) + + buildConfigField("String", "BUILD_TIME", "\"${getBuildTime(useLastCommitTime = false)}\"") } create("benchmark") { initWith(release) diff --git a/buildSrc/src/main/kotlin/mihon/buildlogic/Commands.kt b/buildSrc/src/main/kotlin/mihon/buildlogic/Commands.kt index 850364a31..f3470f957 100644 --- a/buildSrc/src/main/kotlin/mihon/buildlogic/Commands.kt +++ b/buildSrc/src/main/kotlin/mihon/buildlogic/Commands.kt @@ -20,7 +20,12 @@ fun Project.getGitSha(): String { private val BUILD_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'") -fun Project.getBuildTime(useLastCommitTime: Boolean = false): String { +/** + * @param useLastCommitTime If `true`, the build time is based on the timestamp of the last Git commit; + * otherwise, the current time is used. Both are in UTC. + * @return A formatted string representing the build time. The format used is defined by [BUILD_TIME_FORMATTER]. + */ +fun Project.getBuildTime(useLastCommitTime: Boolean): String { return if (useLastCommitTime) { val epoch = runCommand("git log -1 --format=%ct").toLong() Instant.ofEpochSecond(epoch).atOffset(ZoneOffset.UTC).format(BUILD_TIME_FORMATTER)