diff --git a/.github/workflows/nanvix-ci.yml b/.github/workflows/nanvix-ci.yml index 7051ae987..f9dfa4083 100644 --- a/.github/workflows/nanvix-ci.yml +++ b/.github/workflows/nanvix-ci.yml @@ -26,7 +26,7 @@ concurrency: jobs: ci: if: github.event_name != 'schedule' && github.event_name != 'workflow_dispatch' - uses: nanvix/workflows/.github/workflows/nanvix-ci.yml@v2.2.0 + uses: nanvix/workflows/.github/workflows/nanvix-ci.yml@v2.3.0 with: platforms: '["microvm"]' process-modes: '["multi-process","single-process","standalone"]' @@ -43,7 +43,7 @@ jobs: ci-scheduled: if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' - uses: nanvix/workflows/.github/workflows/nanvix-ci.yml@v2.2.0 + uses: nanvix/workflows/.github/workflows/nanvix-ci.yml@v2.3.0 with: platforms: '["microvm"]' process-modes: '["multi-process","single-process","standalone"]' diff --git a/.nanvix/z.py b/.nanvix/z.py index b975fb487..60bc9a5f3 100644 --- a/.nanvix/z.py +++ b/.nanvix/z.py @@ -284,7 +284,8 @@ def _run_tests_windows(self) -> None: test_allowlist = {"test_libxml2.elf"} test_binaries: list[Path] = [] - for candidate in [repo_root(), repo_root() / "build"]: + # test_out() is the windows-test artifact overlay. + for candidate in [test_out(), repo_root(), repo_root() / "build"]: if candidate.is_dir(): for elf in sorted(candidate.glob("*.elf")): if elf.name in test_allowlist and elf.name not in { @@ -313,12 +314,10 @@ def _run_tests_windows(self) -> None: initrd: Path | None = None try: if binary.resolve() != repo_elf.resolve(): - if repo_elf.exists(): - raise FileExistsError( - f"refusing to clobber existing {repo_elf}" - ) + # Don't clobber a dev's prior repo-root build. + preexisted = repo_elf.exists() shutil.copy2(binary, repo_elf) - copied_elf = True + copied_elf = not preexisted initrd = make_initrd(self, binary.name, test=True) with tempfile.TemporaryDirectory(prefix=f"nanvix_{name}_") as tmpdir: tmpdir_path = Path(tmpdir)