ci-requirements: the Android lane has an image again

`ci-tauri-android` was repurposed into `ci-rust-android:1.97` rather than
deleted (CI-runner dc802f2, PR #12) — tauri-cli out, cargo-ndk in, ktlint and
detekt added so the Kotlin analyzer lane needs no second image, and JDK 25 now
that we hand-write the Gradle project instead of letting Tauri generate one.

Two things recorded here because they are constraints ON THIS REPO, not on the
image: our Gradle wrapper has to be 9.1+ for that JDK, and the Rust pin is in
lockstep with ci-tauri and ci-tauri-win because all three build
thoughtsync-core from one workspace Cargo.lock under --locked.

M12 step 3 (Scribe #2732). No workflow consumes the image yet; the lane arrives
with the app skeleton.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-18 10:15:48 -04:00
co-authored by Claude Opus 5
parent e696b23417
commit 9f981ca47e
+18 -5
View File
@@ -159,14 +159,27 @@ backend/frontend push.
- No Postgres lane (unchanged): the desktop app's local store + sync behavior is
verified on the operator's machine, not in CI.
## Android lane — REMOVED 2026-08-17
## Android lane — being rebuilt (M12)
The Tauri-mobile Android lane is gone. Android is a native Kotlin/Compose client
over the shared `thoughtsync-core` crate instead — see Scribe note 2730 for the
decision and milestone M12 for the arc. Its CI lane and image will be rebuilt on
that basis; `ci-tauri-android` is being repurposed (drop `tauri-cli`, add
`cargo-ndk`) rather than deleted, because its NDK binutils symlinks and PATH fix
are load-bearing for any Rust-on-Android cross-compile.
decision and milestone M12 for the arc.
The image it will run on already exists: **`ci-rust-android:1.97`**, repurposed
from `ci-tauri-android` rather than deleted (CI-runner `dc802f2`, Scribe #2732).
`tauri-cli` is out and `cargo-ndk` is in; the NDK binutils symlinks and the PATH
append stayed, because they were never Tauri problems — NDK r23 removed the
triple-prefixed binutils that autotools, and so vendored OpenSSL, invokes by bare
name. It also carries `ktlint` + `detekt` so the Kotlin analyzer lane needs no
second image, and JDK 25 (which requires **Gradle 9.1+** in this repo's wrapper —
the old JDK 17 pin existed only because Tauri generated a Gradle 8.x project).
The Rust pin is in LOCKSTEP with `ci-tauri` and `ci-tauri-win`. All three build
`thoughtsync-core` from one workspace `Cargo.lock` under `--locked`, so a
mismatched Rust minor across the lanes would mean divergent resolution for no
reason. Bump the three together or not at all.
No workflow consumes it yet; the lane arrives with the app skeleton (M12 step 5).
## Formatting the Rust lane before pushing