2626 FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 : true
2727
2828jobs :
29- rust-lint :
30- name : Rust Lint and Format Check
31- runs-on : [self-hosted, macOS, ARM64]
32- timeout-minutes : 15
29+ rust :
30+ name : Rust Lint, Format, and Test
31+ runs-on : [macOS, ARM64, studio]
32+ timeout-minutes : 20
33+ env :
34+ CARGO_INCREMENTAL : 1
35+ CARGO_TERM_COLOR : always
3336
3437 steps :
3538 - name : Setup macOS self-hosted runner PATH
@@ -40,19 +43,36 @@ jobs:
4043
4144 - uses : actions/checkout@v6
4245
43- - name : Setup Rust
44- uses : actions-rust-lang/setup-rust-toolchain@v1
45- with :
46- toolchain : nightly
47- components : clippy, rustfmt
48- cache : false
49-
50- - name : Cargo clippy
51- run : cargo clippy --workspace -- -D warnings
46+ - name : Setup Tauri build environment
47+ uses : ./.github/actions/setup-tauri-build
5248
5349 - name : Cargo fmt check
5450 run : cargo fmt --all -- --check
5551
52+ - name : Cargo clippy
53+ run : cargo clippy --workspace --all-features -- -D warnings
54+
55+ - uses : cargo-bins/cargo-binstall@main
56+
57+ - name : Install cargo-tarpaulin
58+ run : cargo binstall --no-confirm --force cargo-tarpaulin
59+
60+ - name : Run Rust tests with coverage
61+ run : |
62+ cargo tarpaulin --workspace --out Html --out Json --output-dir coverage \
63+ --ignore-tests --skip-clean \
64+ --exclude-files 'crates/mt-tauri/src/commands/*' 'crates/mt-tauri/src/lib.rs' 'crates/mt-tauri/src/main.rs' 'crates/mt-tauri/src/watcher.rs' 'crates/mt-tauri/src/dialog.rs' 'crates/mt-tauri/src/media_keys.rs' \
65+ --fail-under 50
66+
67+ - name : Upload coverage report
68+ if : always()
69+ continue-on-error : true
70+ uses : actions/upload-artifact@v7
71+ with :
72+ name : rust-coverage
73+ path : coverage/
74+ retention-days : 30
75+
5676 deno-lint :
5777 name : Deno Lint and Format Check
5878 runs-on : blacksmith-4vcpu-ubuntu-2404
7494
7595 build :
7696 name : Build (${{ matrix.platform }})
77- needs : [rust-lint , deno-lint, vitest-tests, playwright-tests, rust -tests]
97+ needs : [rust, deno-lint, vitest-tests, playwright-tests]
7898 strategy :
7999 fail-fast : false
80100 matrix :
@@ -215,41 +235,3 @@ jobs:
215235 path : test-results/
216236 retention-days : 30
217237
218- rust-tests :
219- name : Rust Tests with Coverage
220- needs : rust-lint
221- runs-on : [macOS, ARM64, studio]
222- timeout-minutes : 10
223- env :
224- CARGO_INCREMENTAL : 1
225- CARGO_TERM_COLOR : always
226-
227- steps :
228- - uses : actions/checkout@v6
229-
230- - name : Setup Tauri build environment
231- uses : ./.github/actions/setup-tauri-build
232-
233- - name : Check Rust build
234- run : cargo check --workspace --all-features
235-
236- - uses : cargo-bins/cargo-binstall@main
237-
238- - name : Install cargo-tarpaulin
239- run : cargo binstall --no-confirm --force cargo-tarpaulin
240-
241- - name : Run Rust tests with coverage
242- run : |
243- cargo tarpaulin --workspace --out Html --out Json --output-dir coverage \
244- --ignore-tests --skip-clean \
245- --exclude-files 'crates/mt-tauri/src/commands/*' 'crates/mt-tauri/src/lib.rs' 'crates/mt-tauri/src/main.rs' 'crates/mt-tauri/src/watcher.rs' 'crates/mt-tauri/src/dialog.rs' 'crates/mt-tauri/src/media_keys.rs' \
246- --fail-under 50
247-
248- - name : Upload coverage report
249- if : always()
250- continue-on-error : true
251- uses : actions/upload-artifact@v7
252- with :
253- name : rust-coverage
254- path : coverage/
255- retention-days : 30
0 commit comments