Repository navigation
ci: ship a verified Windows ARM64 binary - #264
Merged
Merged
Conversation
sqlite:///C:/data/app.db reached PDO as /C:/data/app.db, which Windows cannot open. On Windows a drive path is now kept as written. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
static-php-cli cannot build PHP for Windows ARM64, so Windows on ARM gets the x64 build, which Windows 11 runs under its built-in x64 emulation. A new job proves it on a windows-11-arm runner before it becomes the win32-arm64 release asset and npm package, in the release, the release dry run and on every PR. The shared smoke test also runs a real SQLite diff from both a drive-letter and a relative URL. Co-Authored-By: Claude Opus 5.5 <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.



Releases had no
dbdiff-win32-arm64.exe, even though the README listed one, and@dbdiff/cli-win32-arm64shipped without a binary. On Windows on ARM, npm fell back to the PHAR, which needs PHP installed.Why there's no native build: static-php-cli can't build PHP for Windows ARM64. It hard-codes the x64 Windows SDK and x64 prebuilt libraries, and its maintainer has said the target isn't planned.
What this does instead: Windows 11 on ARM runs x64 programs through its built-in x64 emulation, so Windows on ARM now gets the x64 build. A new job proves it works on GitHub's
windows-11-armrunner first:.exe..exebecome thewin32-arm64artifact.Where the ARM64 job runs
release.yml:verify-win32-arm64. The GitHub release and npm publish now wait for it, sodbdiff-win32-arm64.exeis a release asset and@dbdiff/cli-win32-arm64carries the binary. The PHAR-fallback exemption is gone, so a missing ARM64 binary now blocks the release like any other platform.release-dry-run.yml: the same job, pluswin32-arm64in the summary tables.binary-check.yml(every PR): the x64 job hands its.exeto a new Windows ARM64 binary job. That job also runs the npm wrapper under native ARM64 Node and checks it resolves@dbdiff/cli-win32-arm64. It is skipped by the existingskip-windows-binarylabel.New:
scripts/smoke-windows-binary.ps1, used by the Windows x64 and ARM64 jobs:--versionand--helprun.basic_schema_dataSQLite fixtures, from both an absolute drive-letter URL (sqlite:///C:/…) and a relative one. It checks the expected statements are there and that both URL forms give the same diff.Fix found along the way
sqlite:///C:/data/app.dbreached PDO as/C:/data/app.db, which Windows can't open.Docs: the README and npm README tables, and the ARM64 package description, now say the ARM64 binary is the x64 build run under emulation.
Verified locally
DsnParserTestpasses on PHP 8.3, 8.4 and 8.5.🤖 Generated with Claude Code