chore(scaffold): M0 — Gradle + Compose + Hilt skeleton with CI #3

Closed
wtclaude wants to merge 1 commits from chore/android-m0-scaffold into main
Member

M0 — Repo scaffold

Fresh, single-commit version of the M0 scaffold (supersedes #2, whose CI iterations left a noisy history and whose runs lagged behind the workflow fixes). Stands up the Android-app repo per docs/android/PLAN.md M0: a buildable Kotlin + Jetpack Compose (Material 3) single-activity skeleton wired for Hilt, ready for the M1–M4 functional pass.

What's here

  • Toolchain: Gradle 8.7 wrapper; AGP 8.6.1 / Kotlin 2.0.20; JDK 17; minSdk 29, compile/target 35; applicationId com.runicgateway.app.
  • Version catalog pins the full planned stack so M1–M4 reference libs by alias.
  • App skeleton: RunicGatewayApp (@HiltAndroidApp), MainActivity (Compose), ui/theme/*; externalized strings; adaptive icon; backup rules exclude the token store / DataStore.
  • CI (.gitea/workflows/pr-checks.yml): lint test assembleDebug, with the runner-specific fixes baked in — JDK 17 via apt (this runner can't resolve api.adoptium.net), SDK via sdkmanager, and chmod +x gradlew in-step (the runner's checkout drops the git exec bit).

Verification

Built locally against the Android Studio SDK (platform 35 + build-tools 35.0.0): ./gradlew lint test assembleDebug passes and produces a debug APK. This PR's own first CI run is the fresh end-to-end check on the runner.


AI-assisted contribution disclosure: authored with Claude Code (Claude Opus); commit carries a Co-Authored-By: Claude trailer.

🤖 Generated with Claude Code

## M0 — Repo scaffold Fresh, **single-commit** version of the M0 scaffold (supersedes #2, whose CI iterations left a noisy history and whose runs lagged behind the workflow fixes). Stands up the Android-app repo per [`docs/android/PLAN.md`](https://gitea.whitlocktech.com/RunicGateway/docs/src/branch/main/android/PLAN.md) **M0**: a buildable Kotlin + Jetpack Compose (Material 3) single-activity skeleton wired for Hilt, ready for the M1–M4 functional pass. ### What's here - **Toolchain:** Gradle 8.7 wrapper; AGP 8.6.1 / Kotlin 2.0.20; JDK 17; `minSdk 29`, `compile/target 35`; `applicationId com.runicgateway.app`. - **Version catalog** pins the full planned stack so M1–M4 reference libs by alias. - **App skeleton:** `RunicGatewayApp` (`@HiltAndroidApp`), `MainActivity` (Compose), `ui/theme/*`; externalized strings; adaptive icon; backup rules exclude the token store / DataStore. - **CI** (`.gitea/workflows/pr-checks.yml`): `lint test assembleDebug`, with the runner-specific fixes baked in — JDK 17 via apt (this runner can't resolve `api.adoptium.net`), SDK via `sdkmanager`, and `chmod +x gradlew` in-step (the runner's checkout drops the git exec bit). ### Verification Built locally against the Android Studio SDK (platform 35 + build-tools 35.0.0): `./gradlew lint test assembleDebug` passes and produces a debug APK. This PR's own first CI run is the fresh end-to-end check on the runner. --- **AI-assisted contribution disclosure:** authored with **Claude Code** (Claude Opus); commit carries a `Co-Authored-By: Claude` trailer. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
wtclaude added 1 commit 2026-07-19 18:35:46 +00:00
chore(scaffold): M0 — Gradle + Compose + Hilt skeleton with CI
Some checks failed
PR Checks / android-build (pull_request) Failing after 2m42s
b2ee0c4394
Stand up the Android-app repo per docs/android/PLAN.md M0: a buildable
Kotlin + Jetpack Compose (Material 3) single-activity skeleton wired for
Hilt, ready for the M1-M4 functional pass.

- Gradle 8.7 wrapper (chmod +x, and re-chmod'd in CI); AGP 8.6.1 /
  Kotlin 2.0.20, JDK 17, minSdk 29, target 35, applicationId com.runicgateway.app.
- Version catalog (gradle/libs.versions.toml) pins the full planned stack
  (Compose, Hilt, Retrofit/OkHttp + kotlinx.serialization, DataStore,
  security-crypto, Coil, Navigation) so later milestones reference by alias.
- RunicGatewayApp (@HiltAndroidApp) + MainActivity (Compose) + ui/theme/*;
  externalized strings; adaptive launcher icon; backup rules exclude the
  token store / DataStore (no session material off-device).
- CI: .gitea/workflows/pr-checks.yml gates PRs with lint + test + assembleDebug.
  Installs JDK 17 via apt (the runner can't resolve api.adoptium.net, so
  actions/setup-java is avoided) and the SDK via sdkmanager; chmods gradlew
  in-step because this runner's checkout drops the git executable bit.

Verified locally against the Android Studio SDK (platform 35 + build-tools
35.0.0): `./gradlew lint test assembleDebug` passes and produces a debug APK.

Co-Authored-By: Claude <noreply@anthropic.com>
whitlocktech approved these changes 2026-07-19 18:36:22 +00:00
wtclaude closed this pull request 2026-07-19 18:37:47 +00:00
Some checks failed
PR Checks / android-build (pull_request) Failing after 2m42s
Required
Details

Pull request closed

Sign in to join this conversation.
No description provided.