chore/sync-from-yotun #61

Merged
David merged 11 commits from chore/sync-from-yotun into main 2026-05-10 05:08:41 +02:00
Owner
No description provided.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The desktop and OCI workflows share a CI runner; without a cap each container reads the host's nproc and queues that many rustc workers, oversubscribing the runner. Compute nproc/2 in each workflow and pass through as a build-arg, with a default in each Dockerfile.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Validates code on every push and PR: cargo fmt, clippy, server + web/WASM checks, build, and unit tests. The desktop client requires GTK system libraries and is validated via Docker (`check-desktop-linux` recipe), so that path stays out of this workflow. SQLite is in-process so no DB service is needed; integration tests in `tests/` rely on testcontainers and are skipped here in favour of `cargo test --lib`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Caches `~/.cargo/{registry,git}` and `target/` between runs using the runner's built-in actions/cache server. First run still cold; subsequent runs skip dependency download and rebuild for unchanged crates.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replace inline cache (only the final image carries cache metadata) with a dedicated `:buildcache` registry tag using `mode=max`, which caches every intermediate layer. Adds a `docker-container` buildx builder, required because the default `docker` driver does not support registry cache export. Subsequent builds restore the dependency and dx layers from the registry instead of rebuilding from scratch.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Mount `/usr/local/cargo/registry` and `/usr/local/cargo/git` as BuildKit cache mounts on the dependency-priming build and the real `dx build`, in both the web (OCI) and desktop-linux Dockerfiles. Cargo skips re-downloading dependencies when the dep-cache layer is invalidated, saving the network round-trip for every transitive crate. Cache lives in the buildx builder, so it survives across CI runs alongside the registry-side `:buildcache` tag.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Bump the dx CLI pin from 0.7.3 to 0.7.7 in both the web and desktop-linux Dockerfiles to match the dioxus crate version in Cargo.toml. Mismatched dx and crate versions are a soft-break that may surface as runtime/build oddities.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replace the per-Dockerfile Rust toolchain bootstrap (apt-get install build deps, bun install, cargo-binstall download, dioxus-cli@0.7.7 binstall, wasm32 target add, plus GTK/WebKitGTK on the desktop side) with a FROM against the shared images published by niceguyit/oci-images:

- Dockerfile.web -> rust-builder-dioxus
- Dockerfile.desktop-linux -> rust-builder-dioxus-desktop

Cuts ~2-4 minutes from cold builds (more on the desktop side, where WebKitGTK installs are heavy). Both Dockerfiles pin the full version tag so a future bump is intentional.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
chore: Sync .gitignore with other repos
Some checks failed
Check / clippy + fmt + tests (pull_request) Failing after 2s
9cd9ab261d
Signed-off-by: David Randall <David@NiceGuyIT.biz>
Merge from main and resolve conflicts
Some checks failed
Check / clippy + fmt + tests (pull_request) Failing after 2s
7d37f40092
Signed-off-by: David Randall <David@NiceGuyIT.biz>
David merged commit a4fc2a62db into main 2026-05-10 05:08:41 +02:00
David deleted branch chore/sync-from-yotun 2026-05-10 05:08:41 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/lets-chat!61
No description provided.