Save always uses the job scope key; do not reuse cache-primary-key from a partial restore (e.g. Android saving build-jar).
Co-authored-by: Cursor <cursoragent@cursor.com>
Fail early when the release already exists; workflow_dispatch can set force_update_release to overwrite it.
Co-authored-by: Cursor <cursoragent@cursor.com>
Cache project .gradle/ and root build/ (execution history + outputs), restore git mtimes after checkout, skip set-version when unchanged, and bump cache keys to v2 with build-jar restore fallback.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use a single glob for platform artifacts and a separate step for Android; multiline pattern values are not supported.
Co-authored-by: Cursor <cursoragent@cursor.com>
download-artifact accepts one glob pattern, not multiline lists; split platform and Android downloads. Scope Gradle build cache keys per job and use read-only setup-gradle on parallel jobs to avoid cache reservation races.
Co-authored-by: Cursor <cursoragent@cursor.com>
Remove test/smoke jobs and ci-*.sh scripts; embed compile, packaging, and version setup directly in release.yml.
Co-authored-by: Cursor <cursoragent@cursor.com>
Split Windows builds into shared x64 prep and arch-specific packaging, add comprehensive caching, verification scripts, and a PR smoke workflow.
Co-authored-by: Cursor <cursoragent@cursor.com>