swink-agent-eval 0.9.0

Evaluation framework for swink-agent: trajectory tracing, golden path verification, and cost governance
Documentation
name: PR Eval

on:
  pull_request:
    branches: [main, integration]

jobs:
  pr-eval:
    runs-on: ubuntu-latest
    timeout-minutes: 20
    env:
      CARGO_TERM_COLOR: always
      CARGO_NET_RETRY: 3
      RUSTFLAGS: "-D warnings"
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Install stable Rust
        uses: dtolnay/rust-toolchain@stable

      - name: Cache cargo
        uses: Swatinem/rust-cache@v2
        with:
          shared-key: pr-eval

      - name: Install swink-eval
        run: cargo install --path eval --features "cli,yaml" --locked

      - name: Run eval suite
        run: |
          swink-eval run \
            --set eval-sets/pr.yaml \
            --out target/eval-result.json \
            --parallelism 4 \
            --reporter md | tee eval-summary.md

      - name: Gate results
        run: |
          swink-eval gate \
            --result target/eval-result.json \
            --gate-config .github/eval/pr-gate.json

      - name: Upload result artifact
        if: always()
        uses: actions/upload-artifact@v4
        with:
          name: eval-result
          path: target/eval-result.json

      - name: Post PR comment
        if: always() && github.event_name == 'pull_request'
        uses: marocchino/sticky-pull-request-comment@v2
        with:
          header: pr-eval-summary
          path: eval-summary.md