Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -315,13 +315,16 @@ jobs:
platform: win
target: nsis
arch: x64
jobTimeoutMinutes: 120
# Without a Rust cache this row took 108 minutes on 2026-11-13.
jobTimeoutMinutes: 180
- label: Windows arm64
runner: windows-11-vs2026-arm
platform: win
target: nsis
arch: arm64
jobTimeoutMinutes: 120
# Without a Rust cache this row took 113 minutes on a pull request on
# 2026-11-13, and was cancelled at its 120-minute limit on main.
jobTimeoutMinutes: 180
steps: &native_desktop_steps
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
Expand Down
5 changes: 3 additions & 2 deletions docs/operations/ci.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,8 @@ the merge.
path on every pull request; the job installs `dump_syms` 2.3.9 for it, and
Rust Cache keeps the binary in `~/.cargo/bin`.
Each matrix row declares its complete-job budget:
330 minutes for each macOS row and 120 minutes for the other four targets.
330 minutes for each macOS row, 180 minutes for each Windows row, and 120
minutes for each Linux row.
That budget includes setup, host tests, the macOS optimized exception-recovery
probe, and native packaging without shortening any check or test-owned deadline.
Debug host tests cannot warm the optimized artifacts. The exception probe is
Expand Down Expand Up @@ -258,7 +259,7 @@ recently used entries above that. Which workflow saves which entry:

A job cancelled by `timeout-minutes` or by a newer run skips the cache post
step, so the Check and Test budgets above include a cold compile. Native
desktop keeps its 120-minute and 330-minute row budgets.
desktop keeps its 120-minute, 180-minute and 330-minute row budgets.

Six native-desktop entries of about 1.6 GB each are about 10 GB on their own,
before Check, Test, Crash smoke, Linux Git, and the setup-vp caches. Eviction
Expand Down
4 changes: 3 additions & 1 deletion scripts/ci-platform-contract.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -332,7 +332,9 @@ describe("cross-platform CI contract", () => {
// macOS builds the unoptimized host test graph and the optimized native
// package with its symbols.
// With a Rust cache the macOS rows took 215 and 228 minutes on 2026-11-13.
const minimum = row.platform === "mac" ? 330 : 120;
// Without a Rust cache the Windows rows took 108 and 113 minutes on the
// same day, and Windows arm64 was then cancelled at 120 minutes on main.
const minimum = row.platform === "mac" ? 330 : row.platform === "win" ? 180 : 120;
expect(row.jobTimeoutMinutes, String(row.label)).toBeGreaterThanOrEqual(minimum);
}
});
Expand Down
Loading