ci: run the frontend as its own job instead of twice inside the Python matrix
`test / Python 3.11` on8555a05areported `cancelled` with every step green except the last: it hit `timeout-minutes: 10` partway through `npm ci`. The backend was not the cause. Across the nine previous CI runs on main the Frontend build step took 14-24s; on this run it took 87s on the 3.14 leg and was still installing at 131s on the 3.11 leg when the budget ran out. What changed was not the tree: frontend/package-lock.json7b43ba37-> HEADa7aafd3c->a7aafd3c(identical) setup-node cache key both runs node-cache-Linux-x64-npm-be942593 tsc -b --force, local pre-merge 12.3s post-merge 12.5s Same lock file, same restored npm cache, same compile time, so `npm ci` was doing identical work more slowly — a registry or runner effect, reproduced on a re-run an hour later. What made a slow install fatal is the budget. The frontend build and tests were the tail of BOTH Python matrix legs, running the same npm ci + tsc + vite + vitest twice per push against a tree with no Python in it, and the 3.11 leg was already at 539s of its 600s ceiling on the last green run. Sixty seconds of headroom is not enough to absorb anything. Splitting the frontend into its own job removes the duplicated run, gives it its own 10-minute budget, returns ~65s to each Python leg, and lets the two run in parallel. The commands and the tree they run against are unchanged, so nothing is tested less than before. No required status check names change either: main currently has none configured.
This commit is contained in:
1 parent
8555a05aea
commit
be623c1be7
1 file changed
+16
@@ -109,6 +109,22 @@ jobs:
|
||||
# the suite never silently switches state on env presence.
|
||||
run: pytest --ignore=agent/tests/e2e_backtest --ignore=agent/tests/test_e2e_harness_v2.py --cov=agent --cov-report=term-missing --cov-report=xml --tb=short -q
|
||||
|
||||
frontend:
|
||||
name: frontend
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
# Split out of `test` on 2026-09-04. It used to be the tail of BOTH Python
|
||||
# matrix legs, which ran the identical npm ci + tsc + vite + vitest twice
|
||||
# per push for a tree that has no Python in it. That duplication was free
|
||||
# until the Python 3.11 leg grew to 539s of its 600s budget: on 8555a05a an
|
||||
# npm registry slowdown pushed `npm ci` from its usual ~20s to over 130s and
|
||||
# the leg hit `timeout-minutes` mid-install, reporting as `cancelled` with a
|
||||
# green backend. Nothing here is tested less than before — the same three
|
||||
# commands run on the same tree — but the frontend now owns its own budget
|
||||
# and the Python legs get ~65s of headroom back.
|
||||
steps:
|
||||
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
|
||||
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
|
||||
with:
|
||||
node-version: "22"
|
||||
|
||||
Reference in new issue
Block a user