Raw
1 name: CI
2
3 on:
4 push:
5 branches: [main, development]
6 pull_request:
7
8 concurrency:
9 group: ${{ github.workflow }}-${{ github.ref }}
10 cancel-in-progress: true
11
12 jobs:
13 frontend:
14 name: Frontend (UI + web)
15 runs-on: ubuntu-latest
16 steps:
17 - uses: actions/checkout@v7
18 - uses: pnpm/action-setup@v6
19 - uses: actions/setup-node@v7
20 with:
21 node-version: 22
22 cache: pnpm
23 - run: pnpm install --frozen-lockfile
24 - name: Type-check + build UI
25 run: pnpm build
26 - name: Build landing site
27 working-directory: web
28 run: pnpm build
29
30 rust:
31 name: Rust core (macOS)
32 runs-on: macos-latest
33 steps:
34 - uses: actions/checkout@v7
35 - uses: pnpm/action-setup@v6
36 - uses: actions/setup-node@v7
37 with:
38 node-version: 22
39 cache: pnpm
40 - uses: dtolnay/rust-toolchain@stable
41 with:
42 components: rustfmt, clippy
43 - uses: Swatinem/rust-cache@v2
44 with:
45 workspaces: src-tauri
46 # tauri-build expects the frontend dist to exist before compiling the core.
47 - run: pnpm install --frozen-lockfile
48 - run: pnpm build
49 - name: rustfmt
50 working-directory: src-tauri
51 run: cargo fmt --all --check
52 - name: clippy
53 working-directory: src-tauri
54 run: cargo clippy --all-targets -- -D warnings
55 - name: build
56 working-directory: src-tauri
57 run: cargo build --locked