From 2e94e152c2d4306b1a3cf02cd3a1adca0e7ee041 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) (cherry picked from commit 935f1fcf3f8e4f9da4774d932b65ae77b44cc773) # Conflicts: # app/build.gradle.kts --- app/build.gradle.kts | 2 +- buildSrc/src/main/kotlin/mihon/buildlogic/Commands.kt | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index fc6ae082b..58a9fc53f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -36,7 +36,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", "INCLUDE_UPDATER", "false") ndk { 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)