- `actions/setup-node` doesn't allow for setting cache keys
- even in recent versions... (bumped to v6)
- so move npm caching to `actions/cache`:
- disable `setup-node` caching via `package-manager-cache: false`
- add new step for `actions/cache` "npm dependencies"
- cache key includes the runner image, the container distro (if any), and hash of `package-lock.json`
- for `Swatinem/rust-cache`
- use a cache key that includes the runner image, the container distro (if any), and TAURI_CLI_VERSION
- add a TODO ref Cargo.lock missing/.gitignored, as it would be hashed too automatically had it existed
- for `actions/cache` based "cargo bin tauri-cli" caching
- use a cache key that includes the runner image, the container distro (if any), and TAURI_CLI_VERSION
- also TODO ref Cargo.lock, which was spelled out, but doesn't exist
- also TODO as it seems to me this is already covered by the `Swatinem/rust-cache` cache
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- this should reduce the glibc dep version requirement of .deb's, allowing them to run on old but still supported systems
- See https://v2.tauri.app/distribute/debian/#limitations
- "you must build your Tauri application using the oldest base system you intend to support"
- Debian oldstable (Bookworm) will be supported until late 2028, so fair to support it
- also, there's no downsides; imager itself runs great either way, and .deb install pulls updated deps on newer distros
- fold linux-x64 and linux-amd64 into a single matrix job (1st level)
- 2nd matrix level is per-type:
- `deb` is now built using an oldtable container
- `appimage` is built without container, directly on runner, as before
- seems like appimage/`linuxdeploy` doesn't wanna be run in a container
- also, the AppImage does seem to contain libs, so we don't wanna ship old ones
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
Adds automated translation file synchronization with AI-powered
translations using LibreTranslate API.
Features:
- Auto-detects missing translation keys from en.json source
- Translates new keys using LibreTranslate (free/public API)
- Preserves i18next placeholders like {{count}} and {{boardName}}
- Batch processing with rate limiting
- Falls back to TODO: prefix on translation failures
- GitHub Action runs daily and creates PRs automatically
- Supports custom LibreTranslate instances and API keys
Add omitBodyDuringUpdate and omitNameDuringUpdate to all upload jobs
to prevent overwriting auto-generated release notes with PR references.
- Remove generateReleaseNotes: false from upload jobs (not needed)
- Add omitBodyDuringUpdate: true to preserve release notes
- Add omitNameDuringUpdate: true to preserve release names
- Finalize job keeps omitBodyDuringUpdate but omits omitNameDuringUpdate
to ensure release title is set correctly when publishing
This ensures 'What's Changed' section with PR references remains
visible when releases are created from tags.
Add paths-ignore filter to pr-check workflow to skip running lint, type check, and build jobs when only documentation, images, or configuration files are modified.
- Fix latest.json asset names to match actual release files
- Upload .exe.sig instead of .nsis.zip.sig for Windows
- Use correct naming: Armbian.Imager (with dots) for all platforms
- Integrate tauri-plugin-updater and tauri-plugin-process
- Rewrite UpdateModal with download progress and changelog display
- Add update manifest generation to CI workflow
- Update i18n translations for all 15 languages
- Configure Ed25519 signature verification for secure updates