Skip to content

ci: run the test matrix through shared go-ci - #41

Merged
juicycleff merged 2 commits into
mainfrom
ci/shared-go-ci
Aug 2, 2026
Merged

juicycleff merged 2 commits into
mainfrom
ci/shared-go-ci

Conversation

@juicycleff

Copy link
Copy Markdown
Contributor

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.

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.
@vercel

vercel Bot commented Aug 2, 2026 •

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
forge Ready Ready Preview Aug 2, 2026 4:04pm

Request Review

@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Conventional Commits Validation

PR Title: valid
Commits: all 1 follow conventional format

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.
@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Conventional Commits Validation

PR Title: valid
Commits: all 2 follow conventional format

@juicycleff
juicycleff merged commit 2bf4212 into main Aug 2, 2026
25 checks passed

This branch was successfully deployed

1 active deployment
Preview — f71e55ad Deployed Aug 2, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant