Skip to content

ci(nixos): free GitHub ARM primary, Pi5 last-resort fallback (PR + release builders) - #31

Open
mrosseel wants to merge 1 commit into
nixosfrom
ci-nixos-arm-primary
Open

ci(nixos): free GitHub ARM primary, Pi5 last-resort fallback (PR + release builders)#31
mrosseel wants to merge 1 commit into
nixosfrom
ci-nixos-arm-primary

Conversation

@mrosseel

@mrosseel mrosseel commented Jul 19, 2026

Copy link
Copy Markdown
Owner

Why

The OB patched-kernel build overran the CI timeouts. Both build workflows
tried the self-hosted Pi5 first, which can't compile the aarch64 kernel from
scratch within its timeout (~2 h on the Pi5).

What

Flip both build workflows to free ubuntu-24.04-arm first, Pi5 self-hosted as
a last-resort fallback
, with Attic as the substituter in front of both:

  • nixos-pr-build.yml (labeled testable/preview PRs): build-hosted (arm,
    150 min) primary → build-pi5 fallback (only if hosted fails). Drops the
    native-wait polling job.
  • release.yml (workflow_dispatch release builder): same flip —
    build-hosted (arm, 150 min) primary → build-native (Pi5) fallback. Drops
    native-wait. Prefers the hosted artifact when assembling.

Attic substitutes anything already built (incl. the patched kernel once it
exists), so only a kernel/source change compiles from scratch (~1 h on the free
runner); each build is pushed back, so every subsequent build is fast.

Net effect: add testable → it builds, and dispatch a release → it
builds
, without the Pi5 bottleneck. First build after a kernel change is the
only slow one.

Must land on nixos before it affects labeled PR builds (pull_request_target
uses the base-branch workflow). release.yml (workflow_dispatch) uses the
workflow from the branch it's dispatched on and builds source_branch
(default main).

🤖 Generated with Claude Code

…llback

Both the testable-PR builder (nixos-pr-build.yml) and the release builder
(release.yml) tried the self-hosted Pi5 first, which can't compile the OB
patched kernel within its timeout. Flip both: build on the free
ubuntu-24.04-arm runner first (faster cores; Attic substitutes everything
unchanged, so only a kernel/source change compiles, and each build is pushed
back so the next is fast), with the Pi5 as a last-resort fallback that runs only
if the hosted build fails. Drops the native-wait polling job from both.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015EWb2JET2JE1t4ya3HZPNL
@mrosseel
mrosseel force-pushed the ci-nixos-arm-primary branch from f17f296 to 8612c8e Compare July 19, 2026 20:18
@mrosseel mrosseel changed the title ci(nixos): free GitHub ARM primary, Pi5 as last-resort fallback ci(nixos): free GitHub ARM primary, Pi5 last-resort fallback (PR + release builders) Jul 19, 2026
@mrosseel
mrosseel force-pushed the nixos branch 3 times, most recently from 6c8781c to dc7b527 Compare August 18, 2026 18:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant