name: CI on: push: pull_request: jobs: verify: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: - ubuntu-latest - macos-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup pnpm uses: pnpm/action-setup@v4 with: version: 9.0.0 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 22 cache: pnpm - name: Setup Rust uses: dtolnay/rust-toolchain@stable - name: Install dependencies run: pnpm install --frozen-lockfile - name: Run Rust tests run: cargo test - name: Build package run: pnpm build - name: Install Playwright Chromium if: matrix.os == 'ubuntu-latest' run: pnpm exec playwright install --with-deps chromium - name: Run Web UI E2E Core if: matrix.os == 'ubuntu-latest' run: pnpm test:e2e:web:core - name: Run Web UI E2E Hardening if: matrix.os == 'ubuntu-latest' run: pnpm test:e2e:web:hardening - name: Smoke test CLI run: pnpm smoke:cli - name: Verify npm pack contents run: pnpm pack:dry-run