Repository navigation
automation: build x86_64 on the Edera host config, and repair failed rebase builds - #60
Merged
Merged
Conversation
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.
The previous commit moved the build job into rebase-build.yml and calls it twice, but the file itself never made it into the commit: the kernel's .gitignore ignores dot-directories, so it has to be added with -f. Without it, upstream-rebase.yml calls a workflow that does not exist.
azenla
approved these changes
Oct 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two changes to the
edera/mainlinerebase automation. The third commit addsrebase-build.yml, which the second commit uses but left out: the kernel's.gitignorehides dot-directories fromgit add -A.1. Build x86_64 on the Edera host config
The rebase acceptance build (
kernel-build.sh, run by the workflow and by the rebase skill) now builds x86_64 on the Edera host config instead of bare defconfig.mainin edera-dev/linux-kernel-oci and mergesconfigs/x86_64/host.configoverdefconfigwithmerge_config.sh. This is how linux-kernel-oci applies it: the file is a fragment againstx86_64_defconfigand omits SMP, NET and anything else that matches defconfig. The log records the linux-kernel-oci commit it used.olddefconfig. The host config setsCONFIG_OPENPAX=nand builds 9P/Xen, virtio-gpu and the Hyper-V network drivers as modules, so avmlinuxbuild would otherwise never compile them. OpenPaX (softmode, xattr flags, mprotect, emutramp) stays on in the test build.AGPis added to the x86_64 forced list becausehost.confighas it=m, which capsDRMatm.2. Repair a rebase whose build fails instead of proposing it
When the independent build failed, the rebase went straight to a pull request. 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 while it waited (#47: "Waiting for the x86 build to confirm the
attach_devbreakage"; #35 the same).fixjob hands Claude its branch and the build logs. It follows a new "Repairing a failed build" section of the skill: fix the downstream commit that broke, rebuild both arches until they pass, and update the report's Build fixes and Builds sections.rebuild). The checker now runs on whichever branch is final.rebase-build.yml, so the first build and the rebuild are the same job. Each build's log is kept as an artifact.automation-selftest.ymlnow also runs whenrebase-build.ymlchanges.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.
Testing
kernel-build.sh x86_64locally againstedera/mainlineat017f96b23bf1, using linux-kernel-oci atdb1c8e94a6d6. Every forced option survivedolddefconfig, including allOPENPAX*at=y, andvmlinuxlinked. Two earlier attempts failed with exit 3, which led to this design: usinghost.configas the whole.configlost SMP/NET and everything that depends on them, and withoutAGPforced on,DRMstayed atm.needs.*andsteps.*reference resolves, the reusable workflow's inputs match its callers, and everyrun:block parses withbash -n. actionlint was not run. The fix/rebuild path has not run in Actions; the first nightly with a build failure will be its first real test.edera/6.18-ltsruns its own copy of this automation; #61 ports this PR there.