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
28 changes: 21 additions & 7 deletions .github/workflows/ci-pull.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,13 @@
# section 5: the local Linux test gate).
#
# Jobs, runner images, steps, and the build-budget timeouts are the
# same as in ci.yml — including the macOS exception (the two macOS
# jobs carry timeout-minutes: 15, the shared-runners tail latency),
# documented in ci.yml's header (the full matrix documentation and
# the Windows multi-config note). The one difference: the sanitizer
# same as in ci.yml — including the macOS exceptions (macOS arm64
# carries timeout-minutes: 20, macOS Intel 15 — the shared-runners
# tail latency)
# and the Linux exception (the two Linux build jobs carry
# timeout-minutes: 45, M2-PERF-01's render-50k gate), both documented
# in ci.yml's header (the full matrix documentation and the Windows
# multi-config note). The one difference: the sanitizer
# jobs upload no artifacts here. The pull_request GITHUB_TOKEN is
# read-only (contents:read for same-repo PRs, read-only for fork PRs —
# Actions cannot grant actions:write on this event), so the report
Expand Down Expand Up @@ -70,7 +73,10 @@ jobs:
linux-gcc:
name: Linux x64 (g++)
runs-on: ubuntu-24.04
timeout-minutes: 10
# 45 instead of the 10-min build budget: M2-PERF-01's render-50k
# gate (this job's Test step) — see ci.yml's header (the Linux
# exception) and the linux-gcc note there.
timeout-minutes: 45
steps:
- uses: actions/checkout@v4
- name: Install GLFW X11 headers (laige-render)
Expand All @@ -97,7 +103,10 @@ jobs:
linux-clang:
name: Linux x64 (clang++)
runs-on: ubuntu-24.04
timeout-minutes: 10
# 45 instead of the 10-min build budget: M2-PERF-01's render-50k
# gate (this job's Test step) — see ci.yml's header (the Linux
# exception) and the linux-gcc note there.
timeout-minutes: 45
steps:
- uses: actions/checkout@v4
- name: Install GLFW X11 headers (laige-render)
Expand Down Expand Up @@ -240,7 +249,12 @@ jobs:
runs-on: macos-15
# The shared macOS runners' tail latency exceeds the 10-min build
# budget (the macOS exception, documented in ci.yml's header).
timeout-minutes: 15
# 15 -> 20: this PR's run 38245828701 (2026-10-12) hit the 15-min
# cap on all three attempts — each attempt finished its full
# build + the 122/122 ctest suite at 15:00-15:10 and the cap
# fired seconds before the job's final cleanup (the identical
# macOS Intel job finished in 7:50 on the same run).
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
- name: Configure
Expand Down
55 changes: 41 additions & 14 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,20 +85,32 @@
# so a job (and therefore the whole matrix, which runs the jobs in
# parallel) longer than the budget fails instead of dragging on. The
# include-lint job is a lint job, not a build, and carries its own
# timeout-minutes: 5.
# timeout-minutes: 5. Two documented exceptions carry wider caps: the
# two macOS build jobs (arm64 20, Intel 15 — below) and the two Linux
# build jobs (45 —
# M2-PERF-01's render-50k gate renders 4000 offscreen frames of the
# ~116k-item reference scene in software GL on this machine's
# llvmpipe stack; estimated ~15-25 min on the reference lane from the
# local canonical-tree CPU window (~50 ms/frame at -O0) and the lane's
# recorded 1.9-2.3x CPU factor, plus the submit stage).
#
# macOS exception: the two macOS build jobs carry timeout-minutes: 15
# instead. The shared GitHub macOS runners' tail latency (runner
# preemption) exceeds the 10-min budget: the M2-UI-01 PR lane (run
# 38138278150) saw three consecutive 10-min cancellations of the
# macOS exceptions: the shared GitHub macOS runners' tail latency
# (runner preemption) exceeds the 10-min budget: the M2-UI-01 PR lane
# (run 38138278150) saw three consecutive 10-min cancellations of the
# macOS arm64 job (11m25s in Build, 10m18s in Test, 10m32s in Build)
# while the identical build + test finished in 5m37s on the macOS
# Intel lane. The 15-min cap gives the shared runners headroom without
# hiding a real hang (a job that runs 15 min is still well past the
# 10-min budget and gets investigated). Raised on user decision
# 2026-10-11; if macOS lanes keep hitting the 15-min wall, the
# evidence is persistent runner degradation, not a code regression —
# revisit the budget, never silently lower the cap back.
# Intel lane. Raised on user decision 2026-10-11: macOS arm64 now
# carries timeout-minutes: 20, macOS Intel 15 — each cap gives the
# shared runners headroom without hiding a real hang (a job at its
# cap is still well past the 10-min budget and gets investigated).
# The arm64 15 -> 20 step (2026-10-12): this PR's run 38245828701 hit
# the 15-min cap on all three attempts — each finished its full build
# + the 122/122 ctest suite at 15:00-15:10, the cap firing seconds
# before the job's final cleanup (the identical macOS Intel job
# finished in 7:50 on the same run). If macOS lanes keep hitting
# their walls, the evidence is persistent runner degradation, not a
# code regression — revisit the budget, never silently lower the cap
# back.
#
# Windows note: CMake's default generator there is the multi-config
# "Visual Studio 17 2022" generator, which ignores CMAKE_BUILD_TYPE and
Expand Down Expand Up @@ -153,7 +165,14 @@ jobs:
linux-gcc:
name: Linux x64 (g++)
runs-on: ubuntu-24.04
timeout-minutes: 10
# 45 instead of the 10-min build budget: M2-PERF-01's render-50k
# gate renders 4000 offscreen frames of the ~116k-item reference
# scene in software GL (this job's Test step) — estimated ~15-25
# min on the reference lane from the local canonical-tree CPU
# window (~50 ms/frame at -O0) and the lane's recorded 1.9-2.3x
# CPU factor (m2-particle-render-budget-rebaseline.md), plus the
# llvmpipe submit stage. See the header's Linux exception.
timeout-minutes: 45
steps:
- uses: actions/checkout@v4
- name: Install GLFW X11 headers (laige-render)
Expand All @@ -180,7 +199,10 @@ jobs:
linux-clang:
name: Linux x64 (clang++)
runs-on: ubuntu-24.04
timeout-minutes: 10
# 45 instead of the 10-min build budget: M2-PERF-01's render-50k
# gate (this job's Test step) — see the linux-gcc note and the
# header's Linux exception.
timeout-minutes: 45
steps:
- uses: actions/checkout@v4
- name: Install GLFW X11 headers (laige-render)
Expand Down Expand Up @@ -360,7 +382,12 @@ jobs:
runs-on: macos-15
# The shared macOS runners' tail latency exceeds the 10-min build
# budget (the macOS exception, documented in this file's header).
timeout-minutes: 15
# 15 -> 20: this PR's run 38245828701 (2026-10-12) hit the 15-min
# cap on all three attempts — each attempt finished its full
# build + the 122/122 ctest suite at 15:00-15:10 and the cap
# fired seconds before the job's final cleanup (the identical
# macOS Intel job finished in 7:50 on the same run).
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
- name: Configure
Expand Down
Loading