ci(installer): add Windows binary startup smoke tests - #878
Merged
Manuelshub merged 1 commit intoAug 31, 2026
Merged
Conversation
Add a PowerShell smoke suite that validates the Windows binary starts and its core --help / config doctor surface works, then wire it into CI: - installer-tests.yml: installer-windows job builds the release binary and runs the suite on Windows, uploading logs on failure. - ci.yml: cli-windows job runs the suite on the debug binary every push/PR. - release.yml: the Windows build matrix entry smoke-tests the release binary before packaging, making the check release-blocking. - Docs: README and CI_ENFORCEMENT note Windows support/CI status. Network/toolchain-dependent doctor findings are reported without failing the job; the offline schema finding must pass.
|
@Noobb-byte Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
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.
Description
Adds Windows installer/binary smoke tests to CI. Windows ships as a
.ziprelease artifact (no shell installer like
install.sh), so this PR validatesthe actual Windows binary that users download: it must start and its core
--help/config doctorsurface must work. The check is wired into therequired CI pipeline on every push/PR and made release-blocking so a broken
Windows binary can never be published.
Type of Change
Changes Made
tests/installer/windows_smoke.ps1: a dependency-free PowerShell smokesuite that runs
starforge.exein an isolatedSTARFORGE_CONFIG_DIRandasserts exit codes for
--version,--help,info, and the doctor surface(
config --helpexits 0 and listsdoctor). It also runsconfig doctordiagnostically: the offline
schemafinding must pass, whilenetwork/toolchain findings (Horizon, Soroban RPC, Stellar CLI on PATH) are
reported without failing the job.
installer-tests.yml: newinstaller-windowsjob that builds the releasebinary (the exact artifact shipped in the
.zip) and runs the suite on aWindows runner, uploading
windows-smoke.logon failure.ci.yml: thecli-windowsjob now also runs the suite against the debugbinary, making the Windows smoke test required on every push/PR.
release.yml: the Windowsbuildmatrix entry smoke-tests the releasebinary before packaging — the check is release-blocking since the
releasejob depends on
build.README.md: Windowsx86_64marked as supported and documented assmoke-tested in CI; release pipeline refuses to publish a binary that fails.
CI_ENFORCEMENT.md: documents the new required/release-blocking job, what ittests, failure visibility, and Windows support status.
Testing
How has this been tested?
The PowerShell suite was validated locally against stub binaries covering all
three outcomes (all-pass, network/toolchain doctor skip, and hard failure) and
parses cleanly under both PowerShell 5.1 and PowerShell 7. The three modified
workflow files were parsed as valid YAML. End-to-end validation of the real
binary runs in the new
installer-windows/cli-windowsCI jobs.Test Coverage
Describe what scenarios have been tested:
--version,--help,info) exits 0; doctorsurface found via
config --help;config doctorpasses all checks.findings are present on isolated runners.
captured output, continues to the next test, and the script exits 1; logs
are uploaded as a CI artifact on failure.
Code Quality Checklist
cargo fmt)cargo clippy -- -D warnings)Breaking Changes
If checked, describe the breaking changes and migration path:
None — no Rust source or CLI behavior changed. The Windows smoke step is new;
no existing jobs were modified semantically, only extended.
Documentation
Additionally updated
CI_ENFORCEMENT.md.Screenshots (if applicable)
Add screenshots or GIFs for UI changes.
None — CI-only change.
Additional Context
Add any other context about the PR here.
.zipbinaries, so validationtargets the binary directly rather than stubbing a shell installer.
config doctorlive run stays diagnostic because isolated runners maylack internet or the Stellar CLI; the deterministic offline schema check is
what gates the job.
windows-installer-smoke-logs,windows-cli-smoke-logs,windows-release-smoke-logs-*on failure.closes #811