| 1 | name: parity-matrix |
| 2 | |
| 3 | on: |
| 4 | pull_request: |
| 5 | push: |
| 6 | branches: |
| 7 | - trunk |
| 8 | |
| 9 | permissions: |
| 10 | contents: read |
| 11 | |
| 12 | jobs: |
| 13 | parity-matrix: |
| 14 | runs-on: macos-14 |
| 15 | timeout-minutes: 30 |
| 16 | steps: |
| 17 | - name: Checkout |
| 18 | uses: actions/checkout@v4 |
| 19 | |
| 20 | - name: Install Rust |
| 21 | uses: dtolnay/rust-toolchain@stable |
| 22 | |
| 23 | - name: Run parity harness proof tests |
| 24 | run: cargo test --test diff_harness_tolerates_known_linkedit --test parity_harness --test parity_canary -- --nocapture |
| 25 | |
| 26 | - name: Run determinism gate |
| 27 | run: cargo test --test determinism -- --nocapture |
| 28 | |
| 29 | - name: Run performance budget gate |
| 30 | env: |
| 31 | AFS_LD_HELLO_BUDGET_MS: "20" |
| 32 | AFS_LD_RUNTIME_BUDGET_MS: "150" |
| 33 | run: cargo test --test perf_baseline -- --nocapture |
| 34 | |
| 35 | - name: Run parity matrix |
| 36 | env: |
| 37 | PARITY_MATRIX_ARTIFACT_DIR: ${{ github.workspace }}/parity-matrix-artifacts |
| 38 | PARITY_MATRIX_MAX_SECONDS: "120" |
| 39 | run: cargo test --test parity_matrix -- --nocapture |
| 40 | |
| 41 | - name: Upload parity artifacts |
| 42 | if: always() |
| 43 | uses: actions/upload-artifact@v4 |
| 44 | with: |
| 45 | name: parity-matrix-html |
| 46 | path: parity-matrix-artifacts |
| 47 | if-no-files-found: warn |
| 48 |