change: update CI workflows and configurations for Rust and Tauri integration (#1402)#1431
Conversation
📝 WalkthroughWalkthroughGitHub Actions, Dependabot, and repository tooling were updated for a two-workspace Rust layout: cache/workspace identifiers changed, Dependabot now checks the repo root, labeler rules split by component, license script cwd removed, and CI workflow refactored into workspace-scoped lint/test/format/check jobs. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Suggested labels
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Coverage Report
File CoverageNo changed files found. |
Rust Tauri Coverage ReportCoverage Details |
There was a problem hiding this comment.
Pull request overview
This PR updates the repository’s GitHub Actions configuration to better reflect the Rust workspace split between core/ and src-tauri/, and adjusts related automation (Dependabot, labeler, license generation) to operate from the workspace root.
Changes:
- Split Rust CI into separate jobs for formatting, Core (clippy/tests), and Tauri (clippy/tests/coverage), plus a Core→Tauri integration
cargo check. - Update change-detection filters and merge-gate dependencies to reflect the new job structure.
- Move Cargo automation to the workspace root (Dependabot Cargo directory, Rust license generation, rust-cache workspace configuration).
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/ci.yml |
Splits Rust checks into format/core/tauri jobs, updates path filters, adds integration check, and adjusts coverage + cargo-deny invocation. |
.github/scripts/generate-licenses.ts |
Runs Cargo license/metadata collection from workspace root instead of src-tauri/. |
.github/labeler.yml |
Splits the previous Rust label into separate labels for Core and Tauri paths. |
.github/dependabot.yml |
Changes Cargo ecosystem updates to run from repository root (/) to support the workspace. |
.github/actions/setup-rust/action.yml |
Updates rust-cache workspace configuration and shared cache key for the workspace layout. |
Comments suppressed due to low confidence (1)
.github/workflows/ci.yml:251
cargo llvm-covis now run for only-p hardware_visualizer, but the latercargo llvm-cov reportstep doesn’t pass-p hardware_visualizer. This can cause the report to be computed for the whole workspace (core + tauri) and diverge from the intended “Tauri coverage” scope. Consider adding-p hardware_visualizer(or otherwise matching the selection flags) to the report command.
- name: Run Tauri tests with coverage
if: matrix.platform == 'ubuntu-22.04'
run: cargo llvm-cov -p hardware_visualizer --no-report -- --test-threads=1 --nocapture
- name: Run Tauri tests
if: matrix.platform != 'ubuntu-22.04'
run: cargo test -p hardware_visualizer -- --test-threads=1 --nocapture
- name: Generate coverage report
if: matrix.platform == 'ubuntu-22.04'
id: coverage-report
run: |
{
echo 'REPORT<<EOF'
cargo llvm-cov report 2>&1
echo 'EOF'
} >> "$GITHUB_OUTPUT"
Summary
Update the CI/CD to support the Core / Tauri split configuration from #1402.
Related Issues
Refs #1402
Type of Change
fix/branch)feat/branch)refactor/branch)docs/branch)chore/branch)Screenshots / Videos
N/A
Test Plan
Validated locally:
cargo fmt --all -- --checkcargo clippy -p hardviz-core --all-targets -- -D warningscargo clippy -p hardware_visualizer --all-targets -- -D warningscargo test -p hardviz-core -- --test-threads=1 --nocapturecargo test -p hardware_visualizer -- --test-threads=1 --nocapturecargo check -p hardware_visualizer --all-targetsNote:
cargo deny --manifest-path Cargo.toml check --config src-tauri/deny.toml licenseswas checked for argument validity locally, but full execution could not complete in the sandbox becausestatic.crates.ioDNS resolution is blocked.Checklist
npm run lint && npm run format/cargo tauri-lint && cargo tauri-fmt)npm test/cargo tauri-test)Summary by CodeRabbit