From df3f698db9543cbfcb23053989c29b8117fd0336 Mon Sep 17 00:00:00 2001 From: ada Date: Fri, 26 Jun 2026 12:49:14 -0500 Subject: [PATCH] Build test output to test_out Builds ramfs test image to test_out. Updates windows CI job to match. Closes #308. --- .github/workflows/ci.yml | 2 +- .nanvix/src/build.py | 11 ++++++----- .nanvix/src/clean.py | 6 +++--- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ea54abe..84485c3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -95,7 +95,7 @@ jobs: tar -xzf $tarball.FullName -C linux-build $ramfs = Get-ChildItem linux-build -Recurse -Filter "nanvix_rootfs.img" | Select-Object -First 1 if (-not $ramfs) { Write-Error "nanvix_rootfs.img not found in tarball"; exit 1 } - $dest = Join-Path $env:GITHUB_WORKSPACE ".nanvix" "nanvix_rootfs.img" + $dest = Join-Path $env:GITHUB_WORKSPACE ".nanvix" "out" "test" "nanvix_rootfs.img" New-Item -ItemType Directory -Force -Path (Split-Path $dest) | Out-Null Copy-Item $ramfs.FullName $dest Write-Host "Placed ramfs at $dest ($('{0:N0}' -f (Get-Item $dest).Length) bytes)" diff --git a/.nanvix/src/build.py b/.nanvix/src/build.py index 437f6d3..365f548 100644 --- a/.nanvix/src/build.py +++ b/.nanvix/src/build.py @@ -21,7 +21,7 @@ from nanvix_zutil import paths from nanvix_zutil.exitcodes import EXIT_BUILD_FAILURE, EXIT_MISSING_DEP from nanvix_zutil.helpers import InitRdArgs -from nanvix_zutil.paths import nanvix_root, repo_root +from nanvix_zutil.paths import nanvix_root, repo_root, test_out from .lib import LibMixin, mkramfs_binary, nanvixd_binary @@ -90,7 +90,7 @@ def _ensure_ramfs(self, sysroot: Path) -> Path: if self._ramfs_img and self._ramfs_img.is_file(): return self._ramfs_img - work_dir = nanvix_root() + work_dir = test_out() img = work_dir / "nanvix_rootfs.img" sentinel = work_dir / ".ramfs-built" current_hash = self._ramfs_input_hash(sysroot) @@ -118,10 +118,11 @@ def _build_ramfs(self, sysroot: Path) -> Path: if self._ramfs_img and self._ramfs_img.is_file(): return self._ramfs_img - work_dir = nanvix_root() + work_dir = test_out() img = work_dir / "nanvix_rootfs.img" sentinel = work_dir / ".ramfs-built" current_hash = self._ramfs_input_hash(sysroot) + work_dir.mkdir(parents=True, exist_ok=True) # Skip rebuild if ramfs image and sentinel are up-to-date if ( @@ -133,7 +134,7 @@ def _build_ramfs(self, sysroot: Path) -> Path: self._ramfs_img = img return img - stripped = work_dir / "stripped-sysroot" + stripped = nanvix_root() / "stripped-sysroot" self._create_stripped_sysroot(sysroot, stripped) self._stripped_sysroot = stripped @@ -148,7 +149,7 @@ def _build_ramfs(self, sysroot: Path) -> Path: # Docker (Python 3.12) and placed at the sysroot root. # Generate build manifests for post-build inspection - self._write_build_manifests(sysroot, stripped, work_dir) + self._write_build_manifests(sysroot, stripped, nanvix_root()) log.info("building ramfs image for standalone mode") mkramfs = str((sysroot / "bin" / mkramfs_binary()).resolve()) diff --git a/.nanvix/src/clean.py b/.nanvix/src/clean.py index 43ec510..3a45c5e 100644 --- a/.nanvix/src/clean.py +++ b/.nanvix/src/clean.py @@ -9,7 +9,7 @@ from pathlib import Path from nanvix_zutil import CFG_SYSROOT, log, paths -from nanvix_zutil.paths import nanvix_root, repo_root +from nanvix_zutil.paths import repo_root, test_out from .lib import LibMixin @@ -29,9 +29,9 @@ def clean(self) -> None: # Clean ramfs artifacts self._cleanup_ramfs() - ramfs_img = nanvix_root() / "nanvix_rootfs.img" + ramfs_img = test_out() / "nanvix_rootfs.img" ramfs_img.unlink(missing_ok=True) - ramfs_sentinel = nanvix_root() / ".ramfs-built" + ramfs_sentinel = test_out() / ".ramfs-built" ramfs_sentinel.unlink(missing_ok=True) # Clean initrd