Files
Jet Huang 21d0187aa9 fix(batch-14.6): split expanded bench to non-blocking workflow (CI = lint + unit only, bench = workflow_dispatch)
Create .github/workflows/bench.yml NEW dedicated workflow for the
23-file expanded bench suite (report-only multi-snapshot v1). Triggered
by workflow_dispatch (manual) and push: tags ['v*'] (release automation);
NOT required on pull_request/push to main. Uses timeout-minutes: 180
for heavy pro-resolution cases (4K frequency, iterative matting).

Remove bench step + bench artifact upload from .github/workflows/ci.yml.
Main CI now runs only lint (ruff check + ruff format --check) + unit
tests (pytest exclude bench); fast hosted-runner feasible, GREEN on every
PR workflow.

Rationale: hosted GHA ubuntu-latest runner hard budget incompatible with
pack's pro-grade bench suite. Observed cancellation on
tests/bench_mask_refiner.py::test_bench_mask_refiner (Levin iterative
solver) + tests/bench_smoother.py::test_bench_smoother[cpu-4k-sigma6-tile]
(4K frequency domain, baseline 453 sec × multi-snapshot 3 runs = ~22 min
single case). Whack-a-mole exclusion via --ignore-glob / whitelist proved
unsustainable (Batch-14.3, 14.4, 14.5 iterations). L-19 clause 4
runner-match rule: separate workflow matches bench cadence (weekly/manual/
release) rather than PR cadence. Batch-13.1 GHA-calibration task will
trigger bench.yml manually for ubuntu-latest baseline snapshot.

Infra-only scope (.github/workflows/ + CHANGELOG + CONTRIBUTING);
no Python code delta, no tag, no version bump.
2026-04-24 19:51:02 +07:00
..