Repository navigation
feat(brand): replace the app icon with the Main agent's face (#213) #869
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| check: | |
| name: Check & Build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Rust cache | |
| uses: swatinem/rust-cache@v2 | |
| with: | |
| workspaces: './src-tauri -> target' | |
| - name: Install Linux dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libsecret-1-dev | |
| - name: Install npm dependencies | |
| run: npm ci | |
| - name: Lint frontend | |
| run: npm run lint | |
| - name: Typecheck frontend | |
| run: npm run typecheck | |
| - name: Frontend tests | |
| run: npm test | |
| - name: Check generated bindings | |
| run: | | |
| npm run gen:bindings | |
| git diff --exit-code src/generated/bindings.ts | |
| - name: Build frontend | |
| run: npm run build | |
| - name: Rust check | |
| working-directory: src-tauri | |
| run: cargo check | |
| - name: Rust clippy | |
| working-directory: src-tauri | |
| # --all-targets brings tests, benches and examples under the lint | |
| # policy; a plain `cargo clippy` lints only the lib, the bin and | |
| # build.rs. README already tells contributors to run it this way. | |
| run: cargo clippy --all-targets -- -D warnings | |
| - name: Rust fmt check | |
| working-directory: src-tauri | |
| run: cargo fmt --check | |
| - name: Rust tests | |
| working-directory: src-tauri | |
| run: cargo test | |
| - name: Build Tauri app (debug, no bundle) | |
| run: npm run tauri -- build --debug --no-bundle | |
| windows-check: | |
| name: Windows check | |
| runs-on: windows-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Rust cache | |
| uses: swatinem/rust-cache@v2 | |
| with: | |
| workspaces: './src-tauri -> target' | |
| - name: Install npm dependencies | |
| run: npm ci | |
| # generate_context! (src-tauri/src/lib.rs) embeds frontendDist (../dist) | |
| # into the binary at compile time, so the Rust steps below need dist/ to | |
| # exist. Build the frontend first (mirrors the Linux job's ordering). The | |
| # frontend quality checks (lint/typecheck/tests/bindings) and fmt are | |
| # platform-independent and already covered by the Linux `check` job, so we | |
| # don't repeat them here — this job exists to compile-check the | |
| # Windows-only (`#[cfg(windows)]` / `cfg!(windows)`) Rust paths. | |
| - name: Build frontend | |
| run: npm run build | |
| - name: Rust check | |
| working-directory: src-tauri | |
| run: cargo check | |
| - name: Rust clippy | |
| working-directory: src-tauri | |
| # --all-targets brings tests, benches and examples under the lint | |
| # policy; a plain `cargo clippy` lints only the lib, the bin and | |
| # build.rs. README already tells contributors to run it this way. | |
| run: cargo clippy --all-targets -- -D warnings | |
| - name: Rust tests | |
| working-directory: src-tauri | |
| run: cargo test |