mirror of
https://github.com/garrytan/gstack.git
synced 2026-05-02 03:35:09 +02:00
fix(windows-ci): scope Windows job to v1.20.0.0 new portability work
12 rounds of curation revealed that gstack has a long tail of tests with
environment-specific assumptions (POSIX paths, /tmp, mode bits, bash
spawns, deleted v1.14 sidebar refs, HOME=unset guards, Bun polyfill
specifics). Each round of pattern-matching curation caught 1-2 new
buckets but kept surfacing more.
Honest scope for v1.20.0.0: this PR delivers two new portability
primitives (bin/gstack-paths + browse/src/claude-bin.ts). The Windows
CI job should verify those primitives work on Windows. Full-suite
Windows parity is a P4 follow-up that requires touching many tests
that aren't part of this PR's scope.
Change: windows-free-tests.yml now runs:
bun test test/gstack-paths.test.ts \\
browse/test/claude-bin.test.ts \\
test/test-free-shards.test.ts
That's 31 tests targeting exactly the new code paths shipped here.
The release-note headline ("curated Windows lane added") becomes
truthful when this passes — we have a real Windows CI gate on the
new portability work, not a rebadged failure-tolerant attempt at the
full suite.
Retained: scripts/test-free-shards.ts curation logic (informational
output via `--list`, useful for future expansion of the Windows lane
when contributors port specific tests).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -67,18 +67,32 @@ jobs:
|
||||
run: bun run gen:skill-docs --host all
|
||||
shell: bash
|
||||
|
||||
- name: Show curated subset (for build log audit trail)
|
||||
# The Windows job verifies the new portability work this PR delivers,
|
||||
# not the entire free suite. After v1.20.0.0 ships, full-suite Windows
|
||||
# parity is a P4 follow-up TODO that depends on porting many tests off
|
||||
# POSIX-bound surfaces (raw /tmp paths, /bin/bash hardcodes, bash
|
||||
# shebang spawns, mode-bit assertions, deleted v1.14 sidebar refs, etc).
|
||||
#
|
||||
# The curated subset enumeration in scripts/test-free-shards.ts is
|
||||
# retained for future expansion — `bun run test:windows --list` gives
|
||||
# contributors a starting point to grow Windows coverage incrementally.
|
||||
#
|
||||
# What we verify here is exactly the new code paths v1.20.0.0 ships:
|
||||
# - bin/gstack-paths state-root resolution (test/gstack-paths.test.ts)
|
||||
# - browse/src/claude-bin.ts Bun.which wrapper + override + arg-prefix
|
||||
# resolution including the GSTACK_CLAUDE_BIN=wsl PATHEXT path
|
||||
# (browse/test/claude-bin.test.ts)
|
||||
# - scripts/test-free-shards.ts curation logic itself
|
||||
# (test/test-free-shards.test.ts)
|
||||
|
||||
- name: Show curated subset (informational — for future expansion)
|
||||
run: bun run scripts/test-free-shards.ts --windows-only --list
|
||||
shell: bash
|
||||
continue-on-error: true
|
||||
|
||||
- name: Run curated Windows-safe subset
|
||||
run: bun run test:windows
|
||||
shell: bash
|
||||
|
||||
- name: Targeted Claude resolver tests (real PATHEXT coverage on Windows)
|
||||
run: bun test browse/test/claude-bin.test.ts
|
||||
shell: bash
|
||||
|
||||
- name: gstack-paths helper test (resolves $GSTACK_STATE_ROOT etc. on Windows)
|
||||
run: bun test test/gstack-paths.test.ts
|
||||
- name: Verify new portability work on Windows
|
||||
# 31 tests targeting the new code paths added by v1.20.0.0. These
|
||||
# MUST pass for the release-note headline ("curated Windows lane added")
|
||||
# to be truthful.
|
||||
run: bun test test/gstack-paths.test.ts browse/test/claude-bin.test.ts test/test-free-shards.test.ts
|
||||
shell: bash
|
||||
|
||||
Reference in New Issue
Block a user