Skip to content

automation: build x86_64 on the Edera host config, and repair failed rebase builds (6.18-lts) - #61

Merged
kaniini merged 2 commits into
edera/6.18-ltsfrom
automation/host-config-build-6.18
Oct 26, 2026
Merged

kaniini merged 2 commits into
edera/6.18-ltsfrom
automation/host-config-build-6.18

Conversation

@kaniini

@kaniini kaniini commented Oct 26, 2026

Copy link
Copy Markdown

Port of #60 to edera/6.18-lts's own copy of the rebase automation. That copy is not reached by the mainline backports, which skip automation-only commits.

1. Build x86_64 on the Edera host config

  • kernel-build.sh now fetches the tip of main in edera-dev/linux-kernel-oci and merges configs/x86_64/host.config over defconfig with merge_config.sh, the way linux-kernel-oci applies it. The log records the linux-kernel-oci commit it used.
  • The Edera options are still forced on as built-ins over it and checked after olddefconfig. That includes OpenPaX, which host.config turns off, and the drivers it builds as modules.
  • AGP is forced on for x86_64, because host.config has it =m, which caps DRM at m.
  • arm64 is unchanged.

On this branch the change also reaches backports: lts-backport.yml calls the same kernel-build.sh, so backport builds switch to the host config too.

2. Repair a rebase whose build fails instead of proposing it

#47 and #35 were proposed with failed builds because Claude's session ended while it waited for a build in the background. The Bash tool's two-minute default timeout cannot hold a kernel build.

  • Longer timeout: the rebase step gets a 90-minute Bash timeout. The skill now says to run builds in the foreground and to keep fixing and rebuilding until both arches pass.
  • Repair round: if the independent build still fails, a read-only fix job hands Claude its branch and the build logs. It follows the skill's new "Repairing a failed build" section.
  • Re-check: a repaired branch is verified and built again from scratch before publish judges it. Publish says in the pull request when a repair happened, and posts the repair report when the round fixed nothing.
  • Shared build job: the build job moves to a reusable rebase-build.yml, which keeps each build's log as an artifact.

A repaired branch still shows drift and goes to review rather than being pushed.

Differences from #60

  • Conflict: this branch's allowed_bots: 'github-actions' on the rebase step conflicted with the new settings line; both are kept.
  • allowed_bots on the repair step: the new repair step also gets allowed_bots: 'github-actions', because this branch's nightly is dispatched by github-actions.
  • rebase-build.yml: included in the second commit. On automation: build x86_64 on the Edera host config, and repair failed rebase builds #60 it needed a follow-up commit, because the kernel's .gitignore hid it from git add -A.

Testing

  • Build: I ran kernel-build.sh x86_64 locally on this branch (edera/6.18-lts at 8d9d50db3bd9, linux-kernel-oci at db1c8e94a6d6). Every forced option survived olddefconfig, including OpenPaX, DRM, AGP, Xen dom0, Hyper-V and NUMA at =y, and vmlinux linked.
  • Static check: run against the committed tree: every needs.* and steps.* reference resolves, the reusable workflow's inputs match its callers, and every run: block parses with bash -n. actionlint was not run.
  • Not run: the repair path has not run in Actions, and arm64 was not built.

The acceptance build judged x86_64 against defconfig with the Edera
options forced on, which is not the kernel we ship. Merge the latest
configs/x86_64/host.config from edera-dev/linux-kernel-oci over
defconfig first, the way linux-kernel-oci itself applies it (the file
is a fragment against x86_64_defconfig and omits SMP, NET and the rest
of what matches it), and log the commit it came from.

The Edera options are still forced on as built-ins afterwards: the host
config builds OpenPaX out and 9P/Xen, virtio-gpu and the Hyper-V
network drivers as modules, which a vmlinux build would never compile.
AGP joins that list on x86_64 because host.config has it as a module,
which caps DRM at m.

arm64 is unchanged.
A rebase whose independent build failed went straight to a pull request,
and in practice that was a run Claude never finished: the Bash tool's
two-minute default timeout cannot hold a kernel build, so the build went
to the background and the session ended "waiting for the x86 build"
(#47, and #35 before it). Nobody saw the error until a reviewer did.

Give the rebase step a 90-minute Bash timeout, and tell the skill to run
builds in the foreground and to keep fixing and rebuilding until both
pass rather than treat a failing build as an outcome to report.

If the independent build still fails, a new read-only fix job hands
Claude its branch and the build logs for one repair round, following a
new "Repairing a failed build" section of the skill. A repaired branch
is verified and built again from scratch before publish judges it; the
checker now runs on whichever branch is final. Publish takes the
repaired branch and report when there is one, says so in the pull
request, and keeps the repair round's report when it repaired nothing.

The build job moves to a reusable rebase-build.yml so the first build
and the rebuild are the same job, and it now keeps each build's log as
an artifact for the repair round to read.

A repair changes downstream commits, so a repaired branch still shows
drift and still goes to review rather than being pushed: what changes is
that the reviewer gets a branch that builds.
@kaniini
kaniini merged commit 5330eb8 into edera/6.18-lts Oct 26, 2026
2 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.

2 participants