mirror of
https://github.com/stablyai/orca.git
synced 2026-10-02 16:02:15 +00:00
selection_evidence is continue-on-error on both the job and its comparison step, so it can never fail a PR -- it downloads the shard reports, compares selection against the full results and uploads a review artifact. But a caller's `needs: test` waits for every job in the called workflow, so living inside unit-tests.yml it held verify for ~36s after the last shard finished. It moves to its own reusable workflow called as a sibling, so it still runs on every PR and still uploads its artifact, but verify no longer waits for it. It is deliberately absent from verify's needs, and a contract test pins both that and its advisory status so it cannot drift back onto the critical path. Measured on a recent run: the shards finished, then selection_evidence ran 36s, then verify 3s. Only the last of those gates anything.
42 lines
1.5 KiB
YAML
42 lines
1.5 KiB
YAML
name: Unit selection evidence
|
|
|
|
# Why its own workflow: this job is advisory -- `continue-on-error` on both the job and its
|
|
# comparison step, so it can never fail a PR. But a caller's `needs: test` waits for every job in
|
|
# the called workflow, so while it lived in unit-tests.yml it held `verify` for ~36s after the
|
|
# last shard finished. Called as a sibling instead, it still runs on every PR and still uploads
|
|
# its review artifact; it just no longer sits on the critical path.
|
|
on:
|
|
workflow_call:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
selection_evidence:
|
|
if: ${{ !cancelled() }}
|
|
continue-on-error: true
|
|
runs-on: ubuntu-slim
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
with:
|
|
sparse-checkout: config/scripts/ci-unit-selection-review.mjs
|
|
sparse-checkout-cone-mode: false
|
|
persist-credentials: false
|
|
- uses: actions/setup-node@v6
|
|
with:
|
|
node-version: '24'
|
|
- uses: actions/download-artifact@v8
|
|
with:
|
|
pattern: unit-shard-node-*-attempt-${{ github.run_attempt }}
|
|
path: unit-evidence/
|
|
- name: Compare selection with full results
|
|
continue-on-error: true
|
|
run: node config/scripts/ci-unit-selection-review.mjs unit-evidence
|
|
- uses: actions/upload-artifact@v7
|
|
if: always()
|
|
continue-on-error: true
|
|
with:
|
|
name: unit-selection-review-attempt-${{ github.run_attempt }}
|
|
path: unit-evidence/selection-review.json
|
|
retention-days: 30
|