mirror of
https://github.com/okhsunrog/vpnhide.git
synced 2026-04-28 14:44:43 +00:00
Profiling the warm-cache run on PR #105 showed three remaining hot spots in the Gradle phase: installUniffiBindgen 52s ← cargo install on every CI build cargoBuildAndroidArm64Debug 30s ← Rust crate compile lintAnalyze* (3 variants) 43s ← AGP Lint × main + unit + androidTest This PR cuts the first one entirely and trims the third. - Dockerfile: pre-install uniffi-bindgen 0.29.x in the CI image so Gobley's :app:installUniffiBindgen task finds it ready instead of rebuilding it from sources on every run. Triggers a ci-image rebuild on merge — wait for that workflow to finish before merging consumers (or the first lint/lsposed run will still hit the old image and behave as before). - lsposed/gradle.properties: enable build cache + configuration cache. Verified locally: `./gradlew :app:assembleDebug --configuration-cache` reports "Configuration cache entry stored" cleanly with Gobley 0.3.7 + AGP 8.9.3 + Kotlin 2.1.20. - lsposed/app/build.gradle.kts: `lint { checkTestSources = false }`. Skips lintAnalyzeDebugUnitTest / lintAnalyzeDebugAndroidTest. Test sources here are pure JVM unit-test logic — functional bugs caught by :app:testDebugUnitTest, no Android-lifecycle code to lint. Deliberately leave `checkReleaseBuilds` at its default so ad-hoc `./gradlew :app:lint` still catches R8/ProGuard issues. - .github/workflows/ci.yml: `:app:lint` -> `:app:lintDebug`. Lints the debug variant only on PRs; release-variant Lint stays available locally / for future tag-time CI. - docs/development.md: refresh local-lint snippet. Expected effect on warm cache (cumulative on top of PR #105): lint 286s -> ~190s (3m10s, -32%) lsposed 227s -> ~130s (2m10s, -42%) |
||
|---|---|---|
| .. | ||
| changelog.md | ||
| development.md | ||
| releasing.md | ||