Skip to content

M12: CI - #16

Merged
youhide merged 2 commits into
mainfrom
feat/m12-ci
Aug 9, 2026
Merged

M12: CI#16
youhide merged 2 commits into
mainfrom
feat/m12-ci

Conversation

@youhide

@youhide youhide commented Aug 9, 2026

Copy link
Copy Markdown
Owner

Runs every suite this project claims to have, on every push and pull request.

Until now every guarantee in ROADMAP.md was a claim about something
someone had run once on their own machine.

  • checkcargo fmt --check, clippy against both musl targets, and the
    146 host tests. Gates the rest.
  • boottest-boot on x86_64 and aarch64, in a matrix.
  • containerxtask container, Docker being already on the runner.
  • distroxtask test-distro, a real Alpine userspace.

Serial logs upload on failure. A failure that only names the missing
needle is one you have to reproduce locally to read.

cargo xtask fetch is new and is what makes this possible without a
paragraph of prose about where Alpine keeps its kernels: it downloads the
kernel and the static busybox for an architecture into target/, reading
the package index rather than pinning a filename that goes stale on the
next point release. Contributors get the same one command.

Cached on the pinned Alpine release, so a bump invalidates it and nothing
else does.

youhide added 2 commits August 9, 2026 13:23
Until now every guarantee in ROADMAP.md was a claim about something
someone had run once on their own machine.

Split by cost. `check` is fmt, clippy against both musl targets, and
the host tests, and gates the rest. The three boot suites run in
parallel with one another: x86_64 and aarch64 under QEMU, the container
under Docker, and a real Alpine userspace. Serial logs are uploaded on
failure, because a failure that only names the missing needle is one you
have to reproduce locally to read.

`cargo xtask fetch` is new and is what makes that possible without a
paragraph of prose about where Alpine keeps its kernels. It downloads
the kernel and the static busybox for an architecture into target/,
reading the package index rather than pinning a filename that goes stale
on the next point release. Contributors get the same one command.
Five jobs, all green, the whole set under two minutes wall-clock after
the gate. The surprise is aarch64: an emulated ARM64 boot on an x86_64
runner costs nine seconds more than the native one, so M9's 300-second
budget is an order of magnitude of headroom rather than a tight fit.

xtask fetch replaces the paragraph in CONTRIBUTING about where Alpine
keeps its kernels with one command per architecture.
@youhide
youhide merged commit a4921ba into main Aug 9, 2026
5 checks passed
@youhide
youhide deleted the feat/m12-ci branch August 9, 2026 16:41
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