name: CI on: push: branches: [main] pull_request: branches: [main] env: CARGO_TERM_COLOR: always jobs: build-check: name: Build Check runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm' - name: Setup Rust uses: dtolnay/rust-toolchain@stable - name: Setup Rust cache uses: Swatinem/rust-cache@v2 with: workspaces: src-tauri shared-key: "rust-cache-build" - name: Install system dependencies (Linux) run: | sudo apt-get update sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libssl-dev - name: Install frontend dependencies run: npm ci - name: Build frontend run: npm run build - name: Check Rust build working-directory: src-tauri run: cargo check --all-targets - name: Lint frontend run: npm run lint - name: Test frontend run: npm test - name: Clippy working-directory: src-tauri run: cargo clippy --all-targets - name: Test Rust working-directory: src-tauri run: cargo test