Skip to content

ci: fix package depmod/zstd, scope artifact reuse to non-PR runs, fix KUnit KVM timeout - #167

Closed
iconidentify wants to merge 1 commit into
integration/aurorafrom
ci/reuse-and-depmod
Closed

iconidentify wants to merge 1 commit into
integration/aurorafrom
ci/reuse-and-depmod

Conversation

@iconidentify

@iconidentify iconidentify commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

Lands the three CI fixes from the Namespace bring-up review.

1. package job: depmod / zstd missing

inspect-package.py shells out to depmod (and reads zstd-compressed modules), neither of which is on the Namespace image. Added a step to kernel-ci-jobs.yml that installs kmod and zstd before the package checks, guarded so it is a no-op where they already exist.

2. Reused artifacts must not come from PR runs (#165)

lookup-build.py now scopes reuse of kernel-package / kernel-verified artifacts to push, merge_group, schedule and workflow_dispatch runs only (REUSE_EVENTS). pull_request runs are still accepted as baselines (BASELINE_EVENTS), so a fork PR can never hand a reused kernel package into a trusted run. Covered by two new unit tests; full suite (110) green, actionlint + zizmor (pedantic) clean.

3. KUnit under KVM: announce_unbind_running_hotplug_test timeout

Root cause was a test-fixture gap, not an emulation artifact. The external-announce fixture never runs the driver's real init paths, so four work items the code under test later drains were left uninitialised and flushed with a NULL ->func:

  • dcp_comp_unbind() drains dimensions_wq (driver inits it in dcp_modes_init()).
  • dcp_disable_typec_work() drains typec_relink_wq, hdmi_settle_wq, hdmi_recheck_wq (driver inits them in its relink / HDMI setup).

Under TCG these only warned in __flush_work; under KVM the faster timing let the unbind diverge at that warning and miss the test's pause point, so the unbind test timed out on t->paused and the three typec-stop cases tripped unexpected __flush_work splats. The fixture now stubs all four works like the others, and the six now-unneeded apple-dcp-external-announce entries are dropped from kunit-expected.json. No --force-emulation workaround needed; this passes under KVM.

Labeled ci:build so the full build/KUnit/package/boot jobs run here.

🤖 Generated with Claude Code

…hecks

Two follow-ups from running the CI on the Namespace runner.

Reuse (follow-up to #165): a reused kernel-package or kernel-verified
artifact is now accepted only from a push, merge_group, schedule or
workflow_dispatch run (REUSE_EVENTS), never a pull_request. A CI-only pull
request from a writer has the same build key as the branch tip and could
otherwise plant a package or verification record that a later queue or push
run reuses before anyone reviews it. A comparison baseline (kernel-metadata)
is only read, never substituted, so a pull_request run is still fine there
(BASELINE_EVENTS).

Package checks: inspect-package.py resolves module symbols with depmod and
unpacks with tar --zstd, which the Namespace builder image does not ship.
Install kmod and zstd in the package job when they are missing.

Signed-off-by: Chris Kearney <[email protected]>
Co-Authored-By: Claude Opus 4.8 <[email protected]>
@maralcbr

Copy link
Copy Markdown
Collaborator

Thanks, Chris. Already in via #169 (merged):

@maralcbr maralcbr closed this Oct 21, 2026
@iconidentify iconidentify added the ci:build Build, test and boot the kernel for this PR now label Oct 21, 2026
@iconidentify iconidentify changed the title ci: scope build reuse to non-PR runs; install kmod/zstd for package checks ci: fix package depmod/zstd, scope artifact reuse to non-PR runs, fix KUnit KVM timeout Oct 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:build Build, test and boot the kernel for this PR now

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants