Three advisory-DB lookups previously spun up three separate runners. All three are fast lockfile-driven checks (pip-audit ~1m37s, npm audit ~12s, cargo audit ~24s) and the runner-setup overhead dominates each. Run them sequentially on a single runner with python + node + rust toolchains pre-installed; total wall clock comes out roughly the same (~3 min) but with one PR check instead of three. Each step keeps continue-on-error: true so a finding in one toolchain does not suppress the others. Logs land in a single advisory-audit-logs artifact (pip + npm + cargo + the filtered req set). Heavy job stays separate: pip-scan-packages remains the 3-shard matrix that downloads + pattern-scans the full PyPI transitive closure (~6 min/shard, in parallel). Conflating that into the advisory job would bloat the runner image and serialize a 6 min job behind a 30 s one. |
||
|---|---|---|
| .. | ||
| lint-ci.yml | ||
| mlx-ci.yml | ||
| release-desktop.yml | ||
| security-audit.yml | ||
| stale.yml | ||
| studio-backend-ci.yml | ||
| studio-frontend-ci.yml | ||
| studio-inference-smoke.yml | ||
| studio-tauri-smoke.yml | ||
| studio-ui-smoke.yml | ||
| studio-update-smoke.yml | ||
| wheel-smoke.yml | ||