Skip to content

ci(test-install): build and install the current stable kernel (#43) - #60

Merged
tmiland merged 3 commits into
tmiland:mainfrom
tmiland-labs:fix/43-ci-real-install
Oct 18, 2026
Merged

tmiland merged 3 commits into
tmiland:mainfrom
tmiland-labs:fix/43-ci-real-install

Conversation

@tmiland-labs

Copy link
Copy Markdown

Closes #43.

Problem

Every install job in .github/workflows/test-install.yml builds 6.12.112, the default kernel_version / KERNEL_VERSION fallback. A run without -k builds whatever kernel.org calls stable, and --longterm / --mainline build something else again — so nothing in CI covered the kernels users actually get. That is how the Fedora BuildRequires: (elfutils-devel or libdw-devel) break (Linux 6.15+) stayed green for four days (#43).

Change

New latest-install job (Fedora 44, Debian 13) that runs ./kernel_installer.sh with no arguments, the way users run it, and:

  • reads the installed release back from /boot/vmlinuz-* instead of assuming one,
  • fails if that release is the 6.12.112 pin, so a silent fallback to the pin cannot pass,
  • requires the log to show that same release was downloaded and PGP-verified, so the release the packaging layer produced is the one the installer fetched,
  • checks the package, headers, module tree, vmlinuz, config and initramfs the same way the pinned jobs do.

It runs on a weekly schedule (23 5 * * 1) and on workflow_dispatch, and is skipped for push/pull_request — PR checks stay reproducible and independent of kernel.org's current release.

Two supporting changes:

  • The pinned install and distro-detection jobs are skipped on the schedule event; the weekly run covers current-stable installs only.
  • The concurrency group now includes ${{ github.event_name }}, so the weekly run cannot cancel an in-flight main or PR run on the same ref.

Verification

  • YAML parses; job list is distro-detection, install, mainline, custom-config-smoke, latest-install.
  • The new job has not been exercised by CI yet. It is guarded to schedule/workflow_dispatch, so this PR's own check run does not execute it — it first runs on the next weekly cron or on a manual dispatch (I can dispatch it on this branch to prove the code path before merge, if you want it verified first).
  • The pinned jobs it leaves untouched are the ones already green on main.

tmiland-lab Bot added 3 commits October 18, 2026 13:11
…d#43)

The install matrix only ever built 6.12.112, the default kernel_version.
Kernel.org's stable release moves on its own, so a break that only shows
up on current kernels (like the Fedora elfutils-devel BuildRequires that
landed in Linux 6.15) stayed green in CI.

Add a `latest-install` job that runs `./kernel_installer.sh` with no
arguments and reads the installed release back from the build output,
asserting it is neither the pin nor something the packaging layer
rewrote. It covers Fedora 44 and Debian 13 and runs weekly on a
schedule plus workflow_dispatch, so a new kernel that breaks the build
shows up without anyone opening a PR.

The pinned jobs keep their 6.12.112 matrix for reproducible PR checks and
are skipped for the schedule event. The concurrency group now includes
the event name so the weekly run cannot cancel an in-flight main or PR
run on the same ref.
The no-argument install resolves the current stable version from
kernel.org with curl or wget, and debian:13 ships neither: the job died
in seconds with "Could not determine a valid kernel version (got: '').
Check your network connection", which looked like a network problem
instead of a missing prerequisite.

Reproduced in debian:13 with the job's prerequisite set: exit 1 with an
empty banner, and the resolve succeeds as soon as curl is installed.

Add curl to both container branches; the dnf branch lists it explicitly
rather than relying on the fedora image shipping curl-minimal.
…check

scripts/package/mkdebian lists python3:native in Build-Depends-Arch since
Linux 6.13, so dpkg-checkbuilddeps aborts `make bindeb-pkg` on minimal
Debian/Ubuntu images, which do not ship python3:

  dpkg-checkbuilddeps: error: unmet build dependencies: python3:native

The Fedora/RHEL list already carries python3, so only the Debian/Ubuntu
family was affected. Found by the latest-install job (7.2.11); the pinned
jobs build 6.12.112 and cannot hit it.

- kernel_installer.sh: add python3 to the Debian INSTALL_PKGS
- README.md: keep the dependency list in sync (tests/test_readme_deps.sh)
@tmiland
tmiland merged commit 2ce3bac into tmiland:main Oct 18, 2026
14 checks passed
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.

CI only builds kernel 6.12.112, so it missed that Fedora installs of current kernels were failing

2 participants