ci: execute complete isolation owners on native Windows

Problem: green PR checks could omit complete isolation/worktree owner tests on
Windows and under Linux race; pure isolation changes could skip native legs.

Root cause: the smoke and race package allowlists lacked both owners, while
the platform classifier treated untagged isolation Go as neutral.

Fix: classify isolation paths as platform-relevant; execute complete Windows
owners with an uploaded JSON inventory, require both package terminals and
portable boundary tests, and include both packages in PR race. Replace the
redundant rollback subset. Preserve existing permissions, deadlines and cache
rules; do not alter product code.

Verification: compiling old-workflow/classifier regressions, exact inventory
positive/negative controls, final classifier/testenv suites, complete 238-package
root inventory, three-owner race, required builtin/boot, vet, lint and check.
Local execution is macOS; native hosted outcomes remain a separate gate.

Refs #14025
Refs #14133
This commit is contained in:
SivanCola committed 2026-10-25 14:02:42 +08:00
1 parent 8c669ebe61
commit 3fa1ea460c
5 files changed
+179 -12

No files matched your search

+1 -1
View File
@@ -9,7 +9,7 @@ set -euo pipefail
neutral_dir='^(docs/|release-notes/|workers/|benchmarks/|npm/|examples/|desktop/frontend-next/)'
# Kernel packages whose behaviour is OS-specific (files, processes, shells,
# sandboxes, sockets, paths) even where no file carries a build tag.
platform_dir='^(internal/(safety|platform|base|state|ext|tools|session|assembly)/|cmd/|sdk/|tools/|scripts/|desktop/(electron|cmd|packaging|computer-helper|internal)/|\.github/)'
platform_dir='^(internal/(safety|platform|base|state|ext|tools|session|assembly)/|internal/runtime/isolation/|cmd/|sdk/|tools/|scripts/|desktop/(electron|cmd|packaging|computer-helper|internal)/|\.github/)'
platform_file='(^|/)(go\.(mod|sum)|Makefile)$|\.(nsh|nsi|ps1|sh|bat|cmd)$|_(windows|darwin|linux|unix|bsd)(_test)?\.go$'
seen=0
+2
View File
@@ -19,6 +19,8 @@ test("neutral paths do not need the macOS and Windows legs", () => {
test("platform paths and unknown paths need them", () => {
for (const f of [
"internal/safety/sandbox/a.go",
"internal/runtime/isolation/store.go",
"internal/runtime/isolation/durable_test.go",
"internal/platform/update/a.go",
"cmd/reasonix/main.go",
"desktop/electron/main.ts",