name: CI on: push: branches: [ "main", "phase-*" ] pull_request: branches: [ "main" ] jobs: test: name: Rust & Workspace Tests (${{ matrix.os }}) runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Rust stable uses: dtolnay/rust-toolchain@stable - name: Setup Rust cache uses: Swatinem/rust-cache@v2 - 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 libssl-dev - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 20 - name: Install GUI frontend dependencies working-directory: gui run: npm ci - name: Build GUI frontend working-directory: gui run: npm run build - name: Run Workspace Tests run: cargo test --workspace --verbose