name: PR Checks on: pull_request: permissions: contents: read concurrency: group: pr-checks-${{ github.event.pull_request.number }} cancel-in-progress: true jobs: frontend: name: Frontend checks runs-on: ubuntu-latest steps: - name: Check out repository uses: actions/checkout@v5 - name: Install pnpm uses: pnpm/action-setup@v6 with: version: 10.34.5 - name: Install Node.js uses: actions/setup-node@v6 with: node-version: 22 cache: pnpm cache-dependency-path: pnpm-lock.yaml - name: Install frontend dependencies run: pnpm install --frozen-lockfile - name: Build shared Web frontend run: pnpm build:web - name: Build Tauri frontend run: pnpm build:desktop-ui - name: Test release metadata scripts run: node --test .github/scripts/*.test.mjs rust: name: ${{ matrix.name }} Rust checks strategy: fail-fast: false matrix: include: - name: Windows os: windows-latest - name: Linux os: ubuntu-22.04 - name: macOS os: macos-latest runs-on: ${{ matrix.os }} steps: - name: Check out repository uses: actions/checkout@v5 - name: Install Linux dependencies if: runner.os == 'Linux' run: | sudo apt-get update sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf xdg-utils - name: Install Rust uses: dtolnay/rust-toolchain@stable with: components: clippy - name: Check workspace run: cargo check --workspace --all-targets - name: Run Clippy run: cargo clippy --workspace --all-targets -- -D warnings - name: Run tests run: cargo test --workspace --all-targets