Repository navigation
ci: run the test matrix through shared go-ci - #41
Merged
Merged
Conversation
test is split into two calls so the Windows-optional policy survives: test ubuntu + macos, part of the ci-summary gate test-windows windows only, deliberately NOT gated Both pass node-version/npm-global-packages so the generated-client runtime tests still get typescript and esbuild, and prefer-makefile: false because 'make test' sweeps every module while CI tests only the root one. lint and security stay local on purpose: both are advisory today (continue-on-error / '|| true') and security runs a custom fix_sarif.py. Moving them to go-ci.yml would make them blocking for the first time - a policy change, not a refactor. Also drops a dead 'grep -v /bk/' filter; bk/ no longer exists, which is why actionlint now passes on this file.
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
Conventional Commits ValidationPR Title: valid |
Health() probed liveness with Process.Signal(syscall.Signal(0)). Windows does not support signals, so the call always errored and Health() reported every external app as unhealthy on that platform — a production bug, not just a test failure. The probe was also not doing what its comment claimed on Unix. The monitor goroutine owns the sole Wait() call and clears the running flag under the mutex the instant the process exits, so that flag is already authoritative. A child that has exited but not been reaped is a zombie whose PID still resolves, so Signal(0) succeeds for it; once reaped, running is already false. The probe could not observe a state the flag missed, so it is gone rather than made platform-specific. Shutdown sent SIGTERM unconditionally and, when that failed, logged "failed to send SIGTERM, forcing kill" before killing. On Windows that warning fired on every single shutdown for a signal that was never deliverable. Graceful stop is now behind a build-tagged helper: Unix sends SIGTERM, Windows terminates directly without pretending a signal was attempted. The tests shelled out to `sleep` and `bash`, which do not exist on stock Windows and only resolved in CI because the runner image happens to ship Git Bash. The environment test also interpolated a temp path into a bash command line, where the backslashes are escape characters — hence the empty file and "expected \"hello-world\\n\", got \"\"". They now re-execute the test binary in helper mode, the pattern os/exec uses in its own tests. No external tooling is involved, so the tests behave the same everywhere and stop depending on what the runner has on PATH. The SIGTERM-trapping test skips where no graceful stop signal exists, with the reason stated. Verified by compiling the test binary for windows/amd64, running go vet for GOOS=windows across the repo, and forcing the non-graceful branch locally to exercise the Windows shutdown path end to end.
Contributor
Conventional Commits ValidationPR Title: valid |
This branch was successfully deployed
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.
test is split into two calls so the Windows-optional policy survives:
test ubuntu + macos, part of the ci-summary gate
test-windows windows only, deliberately NOT gated
Both pass node-version/npm-global-packages so the generated-client runtime
tests still get typescript and esbuild, and prefer-makefile: false because
'make test' sweeps every module while CI tests only the root one.
lint and security stay local on purpose: both are advisory today
(continue-on-error / '|| true') and security runs a custom fix_sarif.py.
Moving them to go-ci.yml would make them blocking for the first time - a
policy change, not a refactor.
Also drops a dead 'grep -v /bk/' filter; bk/ no longer exists, which is why
actionlint now passes on this file.