Skip to content

Fix output directory race in parallel CI builds - #8

Merged
memegauste merged 1 commit into
masterfrom
fix/parallel-ci-build
Oct 14, 2026
Merged

memegauste merged 1 commit into
masterfrom
fix/parallel-ci-build

Conversation

@memegauste

@memegauste memegauste commented Oct 14, 2026 •

Copy link
Copy Markdown
Owner

Parallel CI builds can start NASM or a library compilation before the kernel recipe creates build/, producing boot.asm: fatal: unable to open output file build/boot.o. The output directory is now an order-only prerequisite of every object, so all compilation waits for it without rebuilding objects when the directory timestamp changes.

Make clean safe on both fresh and already-clean checkouts, and remove the attempt to delete build/* after the directory is gone. CI now performs a clean parallel build using the Makefile defaults, validates the kernel's Multiboot header, and fails if the ISO artifact is missing.

Validation in the exact CI image (sha256:0413a96395dfe1db6ddb7311dd6212ca264c4f022c5078b85b7853787807ecd9):

  • Reproduced the original NASM output-directory failure on unmodified master with make -j32 -k.
  • Fresh ISO builds with make -j16 and make -j32 passed.
  • Repeated make clean, incremental rebuild after touching kernel.c, and make -q passed.
  • Touching the build directory did not invalidate the build.
  • grub-file --is-x86-multiboot kenos.bin and nonempty ISO checks passed.
  • CI shell syntax and git diff --check passed.

GitHub Actions passed for the latest commit: OSDev CI, including the clean parallel build, Multiboot validation, and ISO artifact upload.

@memegauste
memegauste force-pushed the fix/parallel-ci-build branch from e35bd56 to 5717bd5 Compare October 14, 2026 07:01
@memegauste
memegauste marked this pull request as ready for review October 14, 2026 07:03
@memegauste
memegauste merged commit 423a880 into master Oct 14, 2026
1 check 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.

1 participant