fix(ci): add release-compile safeguard to catch debugImplementation regressions (#336)

- Reverts okhttp.logging dependency from debugImplementation back to
  implementation so it's on the release classpath
- Adds compileReleaseKotlin CI job to catch release-variant compilation
  errors on every PR
- Fixes signing config to allow compileReleaseKotlin without keystore env
  vars (graceful fallback instead of hard require())
- Updates AGENTS.md with dependency scoping pitfall and CI docs

Co-authored-by: M57 <hy4ri@users.noreply.github.com>
This commit is contained in:
M57andM57 authored and GitHub committed 2026-06-23 05:46:11 +03:00
1 parent 98c02879b4
commit efba360d8a
3 files changed
+61 -14

No files matched your search

+16 -10
View File
@@ -41,15 +41,21 @@ android {
val alias = System.getenv("KEY_ALIAS")
val keyPass = System.getenv("KEY_PASSWORD")
require(!storePath.isNullOrEmpty()) { "KEYSTORE_PATH environment variable is not set" }
require(!storePass.isNullOrEmpty()) { "KEYSTORE_PASSWORD environment variable is not set" }
require(!alias.isNullOrEmpty()) { "KEY_ALIAS environment variable is not set" }
require(!keyPass.isNullOrEmpty()) { "KEY_PASSWORD environment variable is not set" }
storeFile = file(storePath)
storePassword = storePass
keyAlias = alias
keyPassword = keyPass
if (storePath != null && storePass != null && alias != null && keyPass != null) {
storeFile = file(storePath)
storePassword = storePass
keyAlias = alias
keyPassword = keyPass
} else {
// Env vars missing — signing deferred to release workflow.
// Don't hard-require(): that would break compileReleaseKotlin
// in CI where keystore secrets aren't set.
logger.warn("Release signing config missing env vars — signing deferred to release workflow")
storeFile = file("dummy.keystore")
storePassword = "dummy"
keyAlias = "dummy"
keyPassword = "dummy"
}
} else {
// Dummy values for evaluation configuration during non-release builds
storeFile = file("dummy.keystore")
@@ -128,7 +134,7 @@ dependencies {
// Networking
implementation(libs.okhttp)
debugImplementation(libs.okhttp.logging)
implementation(libs.okhttp.logging)
implementation(libs.retrofit)
implementation(libs.retrofit.converter.gson)
implementation(libs.gson)