Skip to content

ci: adopt the fleet reusable workflow - #7

Open
h4x0r wants to merge 2 commits into
mainfrom
ci/adopt-fleet-ci
Open

ci: adopt the fleet reusable workflow#7
h4x0r wants to merge 2 commits into
mainfrom
ci/adopt-fleet-ci

Conversation

@h4x0r

@h4x0r h4x0r commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Replace the hand-maintained ci.yml with a call to
SecurityRonin/fleet-ci/.github/workflows/rust-ci.yml, pinned to
619094ad54edc586f5c2733358e00326b30790bd, keeping the repo-specific
coverage, corpus and geiger jobs verbatim.

msrv-check: test -- the old MSRV job ran cargo test at 1.85, not a bare
build; the input default would verify strictly less.

coverage-gate: "off" -- the old coverage gate cannot be expressed through the
shared workflow's single all-features input, because the old test job runs
--all-features while the old coverage job deliberately does not. Measured on
this tree with the shared gate's own per-line rules:

--workspace --ignore-filename-regex '/tests/|/fuzz/' -> 0 uncovered
--workspace --all-features --ignore-filename-regex '/tests/|/fuzz/' -> 3 uncovered
(core/src/vfs.rs:64,:90,:91 -- behind the vfs feature, which the
existing gate never compiles)

Switching to the shared gate would therefore go red on lines no gate has ever
asked anyone to cover. That migration is a coverage decision and belongs in
its own PR.

qemu-utils stays inside the coverage and corpus jobs, where it is actually
used; it is deliberately not passed as system-packages, since the test job
never had it.

🤖 Generated with Claude Code

h4x0r and others added 2 commits August 7, 2026 06:48
Replace the hand-maintained ci.yml with a call to
SecurityRonin/fleet-ci/.github/workflows/rust-ci.yml, pinned to
619094ad54edc586f5c2733358e00326b30790bd, keeping the repo-specific
coverage, corpus and geiger jobs verbatim.

msrv-check: test -- the old MSRV job ran `cargo test` at 1.85, not a bare
build; the input default would verify strictly less.

coverage-gate: "off" -- the old coverage gate cannot be expressed through the
shared workflow's single `all-features` input, because the old test job runs
--all-features while the old coverage job deliberately does not. Measured on
this tree with the shared gate's own per-line rules:

  --workspace                --ignore-filename-regex '/tests/|/fuzz/' -> 0 uncovered
  --workspace --all-features --ignore-filename-regex '/tests/|/fuzz/' -> 3 uncovered
    (core/src/vfs.rs:64,:90,:91 -- behind the `vfs` feature, which the
     existing gate never compiles)

Switching to the shared gate would therefore go red on lines no gate has ever
asked anyone to cover. That migration is a coverage decision and belongs in
its own PR.

qemu-utils stays inside the coverage and corpus jobs, where it is actually
used; it is deliberately not passed as `system-packages`, since the test job
never had it.
The Coverage and Corpus jobs both failed at "Install qemu-utils". Not a flake,
and not a missing package -- the runner image ships a pre-baked apt list
pinning an exact .deb version, and Ubuntu had since superseded it:

  E: Failed to fetch .../qemu-utils_8.2.2+ds-0ubuntu1.17_amd64.deb
       404  Not Found [IP: 40.81.13.82 80]
  E: Unable to fetch some archives, maybe run apt-get update or try with
       --fix-missing?

apt names the fix in its own error text. Both install sites now refresh the
lists first.

This is a time bomb rather than an intermittent failure: it stays green until
the package gets a security update, then fails on every run until the runner
image is rebuilt -- which reads like infrastructure flakiness and invites a
re-run instead of a fix.

Verified locally in a container rather than by re-running CI. On ubuntu:24.04,
installing with the image's shipped apt state fails ("E: Unable to locate
package qemu-utils") and the same install succeeds after apt-get update. The
container reproduces the class -- apt cannot install against stale or absent
lists -- while CI hit the specific form of it, a pinned version that 404s.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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