feat: add Windows (x64) build and CI smoke test#20
Merged
Conversation
- Add win32/x64 platform support across all layers:
- npm package wrapper (bin/archgate.cjs) resolves .exe binary
- Platform guard in src/cli.ts accepts win32
- package.json os field and optionalDependencies
- Git helper gives actionable install URL on Windows
- Add archgate-win32-x64 platform package (packages/)
- Add bun-windows-x64 target to release-binaries workflow
with Windows-specific build and publish steps
- Add windows-smoke-test.yml CI workflow that runs lint,
typecheck, format, tests, and binary smoke test on PRs
- Fix cross-platform path handling throughout the codebase:
- adr-writer: use basename() instead of split("/").pop()
- loader: use file:// URLs for dynamic import on Windows
- runner: normalize glob/relative paths to forward slashes
- git-files: normalize glob scan output to match git output
- Fix tests: use forward-slash paths in import specifiers
- Update docs (README, CONTRIBUTING, CLAUDE.md)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Windows git auto-converts LF to CRLF on checkout, which causes Prettier format checks to fail in CI. Force LF for all text files via .gitattributes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Merged
rhuanbarreto
added a commit
that referenced
this pull request
Feb 28, 2026
* feat: add Windows (x64) build and CI smoke test
- Add win32/x64 platform support across all layers:
- npm package wrapper (bin/archgate.cjs) resolves .exe binary
- Platform guard in src/cli.ts accepts win32
- package.json os field and optionalDependencies
- Git helper gives actionable install URL on Windows
- Add archgate-win32-x64 platform package (packages/)
- Add bun-windows-x64 target to release-binaries workflow
with Windows-specific build and publish steps
- Add windows-smoke-test.yml CI workflow that runs lint,
typecheck, format, tests, and binary smoke test on PRs
- Fix cross-platform path handling throughout the codebase:
- adr-writer: use basename() instead of split("/").pop()
- loader: use file:// URLs for dynamic import on Windows
- runner: normalize glob/relative paths to forward slashes
- git-files: normalize glob scan output to match git output
- Fix tests: use forward-slash paths in import specifiers
- Update docs (README, CONTRIBUTING, CLAUDE.md)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: add .gitattributes to enforce LF line endings
Windows git auto-converts LF to CRLF on checkout, which
causes Prettier format checks to fail in CI. Force LF
for all text files via .gitattributes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
rhuanbarreto
added a commit
that referenced
this pull request
Mar 3, 2026
* feat: add Windows (x64) build and CI smoke test
- Add win32/x64 platform support across all layers:
- npm package wrapper (bin/archgate.cjs) resolves .exe binary
- Platform guard in src/cli.ts accepts win32
- package.json os field and optionalDependencies
- Git helper gives actionable install URL on Windows
- Add archgate-win32-x64 platform package (packages/)
- Add bun-windows-x64 target to release-binaries workflow
with Windows-specific build and publish steps
- Add windows-smoke-test.yml CI workflow that runs lint,
typecheck, format, tests, and binary smoke test on PRs
- Fix cross-platform path handling throughout the codebase:
- adr-writer: use basename() instead of split("/").pop()
- loader: use file:// URLs for dynamic import on Windows
- runner: normalize glob/relative paths to forward slashes
- git-files: normalize glob scan output to match git output
- Fix tests: use forward-slash paths in import specifiers
- Update docs (README, CONTRIBUTING, CLAUDE.md)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: add .gitattributes to enforce LF line endings
Windows git auto-converts LF to CRLF on checkout, which
causes Prettier format checks to fail in CI. Force LF
for all text files via .gitattributes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
rhuanbarreto
added a commit
that referenced
this pull request
Mar 4, 2026
* feat: add Windows (x64) build and CI smoke test
- Add win32/x64 platform support across all layers:
- npm package wrapper (bin/archgate.cjs) resolves .exe binary
- Platform guard in src/cli.ts accepts win32
- package.json os field and optionalDependencies
- Git helper gives actionable install URL on Windows
- Add archgate-win32-x64 platform package (packages/)
- Add bun-windows-x64 target to release-binaries workflow
with Windows-specific build and publish steps
- Add windows-smoke-test.yml CI workflow that runs lint,
typecheck, format, tests, and binary smoke test on PRs
- Fix cross-platform path handling throughout the codebase:
- adr-writer: use basename() instead of split("/").pop()
- loader: use file:// URLs for dynamic import on Windows
- runner: normalize glob/relative paths to forward slashes
- git-files: normalize glob scan output to match git output
- Fix tests: use forward-slash paths in import specifiers
- Update docs (README, CONTRIBUTING, CLAUDE.md)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: add .gitattributes to enforce LF line endings
Windows git auto-converts LF to CRLF on checkout, which
causes Prettier format checks to fail in CI. Force LF
for all text files via .gitattributes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
windows-smoke-test.ymlCI workflow that runs lint, typecheck, format, tests, and a compiled binary smoke test onwindows-latestChanges
Platform support
bin/archgate.cjs: resolvesarchgate.exeon win32, mapswin32/x64toarchgate-win32-x64src/cli.ts: platform guard now acceptswin32src/helpers/git.ts: actionable error message with install URL when git is missing on Windowspackage.json: addedwin32toosfield andarchgate-win32-x64tooptionalDependencies; cross-platformbuild:checkcleanuppackages/archgate-win32-x64/: new platform package withbin/archgate.exePath handling fixes
src/helpers/adr-writer.ts: usebasename()instead of.split("/").pop()(backslash-safe)src/engine/loader.ts: usepathToFileURL()for dynamicimport()(Windows paths break bare specifiers)src/engine/runner.ts: normalizeBun.Glob.scan()andrelative()output to forward slashessrc/engine/git-files.ts: normalize glob output to matchgit ls-filesforward-slash conventionCI
.github/workflows/release-binaries.yml: addedbun-windows-x64matrix entry with Windows-specific build/publish steps.github/workflows/windows-smoke-test.yml: new workflow — runs on PRs to main, validates the full test suite + binary smoke test onwindows-latestDocs
Test plan
bun run validatepasses on Windows (all 220 tests, 9 ADR rules, build check)code-pull-request.yml) still passes🤖 Generated with Claude Code