mirror of
https://github.com/DBDiff/DBDiff.git
synced 2026-04-25 13:25:49 +03:00
[PR #144] [MERGED] Fix Windows binary builds and decouple npm publish from all-binaries-succeed requirement #276
Labels
No labels
bug
enhancement
good first issue
help wanted
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/DBDiff#276
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/DBDiff/DBDiff/pull/144
Author: @Copilot
Created: 3/7/2026
Status: ✅ Merged
Merged: 3/7/2026
Merged by: @jasdeepkhalsa
Base:
master← Head:copilot/fix-binary-failures-and-npm-step📝 Commits (2)
dba9222Initial plan6a791a5fix: Windows SPC source dir + resilient publish job after PHAR success📊 Changes
1 file changed (+54 additions, -22 deletions)
View changed files
📝
.github/workflows/release.yml(+54 -22)📄 Description
Windows builds (
win32-x64,win32-arm64) consistently failed in the Release workflow, and thepublishjob was blocked from running whenever any binary failed.Windows fix
Root cause: SPC v2.8.2 on Windows runs
7za -so archive.tar.xz | tar -C source\php-src --strip-components 1duringspc build, but never createssource\php-srcbeforehand — tar exits with "The system cannot find the path specified." Thedoctor --auto-fixstep present on Unix was also absent from the Windows path.Fix: Mirror Unix behaviour — run
doctor --auto-fixfirst, then pre-create thesource\directory beforedownload/build:Note:
darwin-x64was listed as failed but was actually cancelled mid-run by a manual workflow cancellation — not a genuine build failure.Resilient publish job
Root cause:
needs: build-binaryrequires every matrix job to succeed; one Windows failure skipped the publish entirely — blocking the PHAR, Docker, and all successful Linux/macOS binaries from being released.Changes:
needs: build-binary→needs: [build-phar, build-binary]withif: ${{ !cancelled() && needs.build-phar.result == 'success' }}— publish runs whenever the PHAR is ready, regardless of individual binary failurescopy_binary()helper that emits::warning::and continues on missing files instead of abortingdbdiffanddbdiff.exe)files:uses globs (binaries/dbdiff-*/dbdiff,binaries/dbdiff-*/dbdiff.exe) so only produced binaries are attached; missing ones are silently omitted (already warned in the copy step)💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.