- Create a composite GitHub Action `gradle-setup` to encapsulate code checkout, wrapper validation, JDK 21 setup, and Gradle caching logic.
- Update all GitHub workflows (`publish-core`, `codeql`, `scheduled-updates`, `release`, etc.) to utilize the new centralized `gradle-setup` action.
- Upgrade the project's primary JDK requirement from 17 to 21 across `jitpack.yml`, workflow files, and build-logic conventions.
- Refactor `KotlinAndroid.kt` and `build.gradle.kts` to target JVM 21 for the application while maintaining JVM 17 compatibility for published library modules (`api`, `model`, `proto`).
- Introduce a new `build-desktop` job in `reusable-check.yml` to verify desktop artifact assembly during CI.
- Implement dynamic `cache_read_only` detection in workflows to optimize Gradle cache usage across different branch types and merge groups.
- Update project documentation (`GEMINI.md`, `AGENTS.md`, `CONTRIBUTING.md`) to reflect the JDK 21 requirement and provide guidance on Robolectric configuration for the new version.
This reverts the `actions/checkout` action to version 5 in the scheduled-updates workflow. The `persist-credentials` option has also been removed as it is not needed with `checkout@v5`.
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
This commit updates the `scheduled-updates.yml` workflow to use the `--preserve-hierarchy` argument when downloading translations from Crowdin. This ensures that the directory structure of the translation files is maintained.
Additionally, the now-default `export_only_approved` and `skip_untranslated_strings` options have been removed for cleanup.
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>