@@ -24,10 +24,12 @@ jobs:
2424 runs-on : windows-latest
2525 timeout-minutes : 25
2626 steps :
27- - uses : actions/checkout@v6
27+ - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
28+ with :
29+ persist-credentials : false
2830
2931 - name : Setup Node.js
30- uses : actions/setup-node@v6
32+ uses : actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
3133 with :
3234 node-version : " 26.1.0"
3335 cache : " npm"
8284 runs-on : windows-latest
8385 timeout-minutes : 40
8486 steps :
85- - uses : actions/checkout@v6
87+ - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
88+ with :
89+ persist-credentials : false
8690
8791 - name : Setup Rust
8892 uses : dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable
@@ -136,3 +140,61 @@ jobs:
136140 with :
137141 name : rust-lcov
138142 path : src-tauri/lcov.info
143+
144+ check-cross-platform :
145+ name : Cross-platform Compatibility (${{ matrix.os }})
146+ runs-on : ${{ matrix.os }}
147+ timeout-minutes : 35
148+ strategy :
149+ fail-fast : false
150+ matrix :
151+ os : [ubuntu-latest, macos-latest]
152+ steps :
153+ - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
154+ with :
155+ persist-credentials : false
156+
157+ - name : Install Linux system dependencies
158+ if : runner.os == 'Linux'
159+ run : |
160+ sudo apt-get update
161+ sudo apt-get install -y \
162+ libwebkit2gtk-4.1-dev \
163+ libayatana-appindicator3-dev \
164+ librsvg2-dev \
165+ patchelf \
166+ libxdo-dev
167+
168+ - name : Setup Node.js
169+ uses : actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
170+ with :
171+ node-version : " 26.1.0"
172+ cache : " npm"
173+ cache-dependency-path : src/package-lock.json
174+
175+ - name : Setup Rust
176+ uses : dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable
177+ with :
178+ toolchain : 1.95.0
179+
180+ - name : Rust Cache
181+ uses : Swatinem/rust-cache@65012b490220f477f20ab979e35ae732e6de4e68 # node24
182+ continue-on-error : true
183+ with :
184+ workspaces : " src-tauri -> target"
185+ cache-targets : false
186+
187+ - name : Install Dependencies
188+ run : |
189+ cd src
190+ npm ci
191+
192+ - name : Frontend Type Check
193+ run : |
194+ cd src
195+ npm run typecheck
196+
197+ - name : Backend Target Check
198+ run : |
199+ cd src-tauri
200+ cargo check --all-targets --all-features
0 commit comments