Simplify build flags setup with distribution profile

This commit is contained in:
AntsyLich
2026-09-20 19:46:27 +06:00
parent 0de91a9c53
commit 61680580dd
3 changed files with 30 additions and 7 deletions
+1 -1
View File
@@ -62,7 +62,7 @@ jobs:
path: app/build/reports/tests/testDebugUnitTest
- name: Build app
run: ./gradlew assembleRelease -Pinclude-telemetry -Penable-updater
run: ./gradlew assembleRelease -Pdist=ci
- name: Upload APK
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
+2 -2
View File
@@ -51,7 +51,7 @@ jobs:
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
- name: Build
run: ./gradlew assembleRelease -Pinclude-telemetry -Penable-updater
run: ./gradlew assembleRelease -Pdist=github
env:
storeFile: ${{ runner.temp }}/antsy.keystore
storePassword: ${{ secrets.KEY_STORE_PASSWORD }}
@@ -106,7 +106,7 @@ jobs:
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
- name: Build
run: ./gradlew assembleFoss -Penable-updater
run: ./gradlew assembleFoss -Pdist=foss
env:
storeFile: ${{ runner.temp }}/antsy.keystore
storePassword: ${{ secrets.KEY_STORE_PASSWORD }}
@@ -8,8 +8,31 @@ interface BuildConfig {
val includeDependencyInfo: Boolean
}
val Project.Config: BuildConfig get() = object : BuildConfig {
override val includeTelemetry: Boolean = project.hasProperty("include-telemetry")
override val enableUpdater: Boolean = project.hasProperty("enable-updater")
override val includeDependencyInfo: Boolean = project.hasProperty("include-dependency-info")
private enum class Distribution {
LOCAL,
CI,
GITHUB,
FOSS,
}
val Project.Config: BuildConfig get() = object : BuildConfig {
private val distribution: Distribution = project.providers.gradleProperty("dist").orNull
?.let { name ->
Distribution.entries.firstOrNull { it.name.equals(name, ignoreCase = true) }
?: error("Unknown -Pdist=$name, expected one of $distributionNames")
}
?: Distribution.LOCAL
override val includeTelemetry: Boolean = project.flag("include-telemetry")
?: (distribution == Distribution.CI || distribution == Distribution.GITHUB)
override val enableUpdater: Boolean = project.flag("enable-updater")
?: (distribution != Distribution.LOCAL)
override val includeDependencyInfo: Boolean = project.flag("include-dependency-info") ?: false
}
private val distributionNames = Distribution.entries.joinToString { it.name.lowercase() }
private fun Project.flag(name: String): Boolean? = providers.gradleProperty(name).orNull
?.let { it.isEmpty() || it.toBoolean() }