docs
CI todo
Planned automation and CI follow-up work.
CI / GitHub Actions - planned work
Tracking items for automation; not implemented yet.
1. Translations (CSV → locale JSON)
Goal: Keep translations.csv and generated **/locales/*.json in sync without manual mistakes.
Sketch:
- Trigger on pull requests (and/or pushes to
main) whentranslations.csvorscripts/csv-to-locales.mjschanges. - Job steps:
actions/checkout, setup Node (seepackage.jsonengines if you add them),npm ci,npm run i18n:sync. - Verify:
git diff --exit-codeon tracked locale files — fail the job if the repo would change (forces commit of regenerated JSON). - Alternative: auto-commit from a bot account (team policy); only use if you trust branch protections.
Related: localeOutputDirs in scripts/csv-to-locales.mjs — extend when new frontends (e.g. Svelte) are added so one workflow still covers all outputs.
2. Rust / Tauri builds (per platform)
Goal: Reproducible desktop builds in CI.
Sketch:
- Use a matrix of runners: e.g.
ubuntu-latest,macos-latest,windows-latest(trim to what you actually ship). - On each runner, install Rust via
dtolnay/rust-toolchain@stable(or matchrust-toolchain.toml/src-tauri/Cargo.tomlrust-version). - Install Tauri v2 prerequisites per OS (Linux deps, MSVC on Windows if building there).
- Cache
~/.cargoandsrc-tauri/targetwhere it helps. - Build:
npm ci, then eithernpm run build -w web-react+npm run tauri:buildornpm run build -w web-svelte+npm run tauri:build:svelte(orcargo buildonly for a faster smoke test).
Note on wording “compiler for each chart”: If this meant one Rust toolchain per CI job / per OS target, the matrix above is the usual pattern (each runner has its own rustc for that platform). If it meant astrological chart workloads compiled or validated in Rust per chart, that is application logic — track separately (e.g. tests under src-tauri/, not this doc).
3. Optional follow-ups
- Python sidecar: build
kefer-backend(or your binary name) in CI and attach as artifact, or document “bring your own binary” for PRs. - Code signing / notarization secrets (Windows, macOS) — only when you are ready to release.