Use commit time instead for reproducible builds

This commit is contained in:
FooIbar committed 2024-05-25 16:56:17 +08:00
1 parent be7a04a4cb
commit a144866182
8 files changed
+12 -10

No files matched your search

+5 -3
View File
@@ -1,6 +1,5 @@
import com.mikepenz.aboutlibraries.plugin.DuplicateMode.MERGE
import com.mikepenz.aboutlibraries.plugin.DuplicateRule.GROUP
import java.time.Instant
val isRelease: Boolean
get() = gradle.startParameter.taskNames.any { it.contains("Release") }
@@ -50,6 +49,10 @@ android {
commandLine = "git rev-parse --short=7 HEAD".split(' ')
}.standardOutput.asText.get().trim()
val commitTime = providers.exec {
commandLine = "git log -1 --format=%ct".split(' ')
}.standardOutput.asText.get().trim()
val repoName = providers.exec {
commandLine = "git remote get-url origin".split(' ')
}.standardOutput.asText.get().trim().removePrefix("https://github.com/").removePrefix("git@github.com:")
@@ -83,6 +86,7 @@ android {
)
buildConfigField("String", "RAW_VERSION_NAME", "\"$versionName${versionNameSuffix.orEmpty()}\"")
buildConfigField("String", "COMMIT_SHA", "\"$commitSha\"")
buildConfigField("long", "COMMIT_TIME", commitTime)
buildConfigField("String", "REPO_NAME", "\"$repoName\"")
buildConfigField("String", "CHROME_VERSION", "\"$chromeVersion\"")
ndk {
@@ -138,11 +142,9 @@ android {
isShrinkResources = true
proguardFiles("proguard-rules.pro")
signingConfig = signConfig
buildConfigField("long", "BUILD_TIME", "${Instant.now().epochSecond}")
}
debug {
applicationIdSuffix = ".debug"
buildConfigField("long", "BUILD_TIME", "0")
lint {
abortOnError = false
}
@@ -169,7 +169,7 @@ object Settings : DataStorePreferences(null) {
var recentToplist by stringPref("recent_toplist", "11")
var userAgent by stringPref("user_agent", CHROME_USER_AGENT)
var defaultDownloadLabel by stringOrNullPref("default_download_label", null)
var lastUpdateTime by longPref("last_update_time", BuildConfig.BUILD_TIME)
var lastUpdateTime by longPref("last_update_time", BuildConfig.COMMIT_TIME)
// Tachiyomi Reader
var newReader by boolPref("new_compose_reader", false)
@@ -59,7 +59,7 @@ private const val RELEASE_URL = "$REPO_URL/releases"
@Composable
@Stable
private fun versionCode() = "${BuildConfig.VERSION_NAME} (${BuildConfig.COMMIT_SHA})\n" + stringResource(R.string.settings_about_build_time, AppConfig.buildTime)
private fun versionCode() = "${BuildConfig.VERSION_NAME} (${BuildConfig.COMMIT_SHA})\n" + stringResource(R.string.settings_about_commit_time, AppConfig.commitTime)
@Composable
@Stable
@@ -39,7 +39,7 @@ object AppConfig {
fun matchVariant(name: String) = name.contains(BuildConfig.FLAVOR) && name.contains(abi)
val buildTime = ParserUtils.formatDate(BuildConfig.BUILD_TIME * 1000)
val commitTime = ParserUtils.formatDate(BuildConfig.COMMIT_TIME * 1000)
val isSnapshot = "SNAPSHOT" in BuildConfig.VERSION_NAME
@@ -26,7 +26,7 @@ object Crash {
writer.write("VersionName=${BuildConfig.VERSION_NAME}\n")
writer.write("VersionCode=${BuildConfig.VERSION_CODE}\n")
writer.write("CommitSha=${BuildConfig.COMMIT_SHA}\n")
writer.write("BuildTime=${AppConfig.buildTime}\n")
writer.write("CommitTime=${AppConfig.commitTime}\n")
writer.write("\n")
// Device info
+1 -1
View File
@@ -383,7 +383,7 @@
<string name="settings_about_source">源码</string>
<string name="license">许可证</string>
<string name="settings_about_version">版本号</string>
<string name="settings_about_build_time">于 %s 构建</string>
<string name="settings_about_commit_time">于 %s 提交</string>
<string name="settings_about_check_for_updates">检查更新</string>
<!-- ExcludedLanguagesScene -->
<string name="please_wait">请稍候</string>
+1 -1
View File
@@ -382,7 +382,7 @@
<string name="settings_about_latest_release">最新版本</string>
<string name="settings_about_source">原始碼</string>
<string name="settings_about_version">版本號碼</string>
<string name="settings_about_build_time">於 %s 建置</string>
<string name="settings_about_commit_time">於 %s 提交</string>
<string name="settings_about_check_for_updates">檢查更新</string>
<string name="license">授權條款</string>
<!-- ExcludedLanguagesScene -->
+1 -1
View File
@@ -427,7 +427,7 @@
<string name="settings_about_latest_release">Latest release</string>
<string name="settings_about_source">Source</string>
<string name="settings_about_version">Build version</string>
<string name="settings_about_build_time">Built at %s</string>
<string name="settings_about_commit_time">Committed at %s</string>
<string name="settings_about_check_for_updates">Check for updates</string>
<string name="license">License</string>
<string name="cant_read_the_file">Can\'t read the file</string>