Add an ns1 test-and-deploy workflow for the Go MCP server.
All checks were successful
test-and-deploy / test (push) Successful in 13s
test-and-deploy / deploy-138 (push) Successful in 13s

scripts/deploy-138.sh tests with Go 1.26.9, swaps the live binary, and rolls back if port 8000 stops answering. Port 0 in the embedded NATS listener now picks an ephemeral port so the test can run while 4222 is already taken.
This commit is contained in:
Cursor Agent 2026-10-11 05:52:17 +00:00
commit dc39095694
No known key found for this signature in database

View file

@ -119,5 +119,15 @@ func splitHostPort(listen string) (string, int, error) {
if host == "" {
host = "127.0.0.1"
}
// nats-server treats port 0 as its default (4222), which is already taken
// on ns1. Bind an ephemeral port and hand that number to the server.
if port == 0 {
ln, err := net.Listen("tcp", net.JoinHostPort(host, "0"))
if err != nil {
return "", 0, fmt.Errorf("embednats: ephemeral listen: %w", err)
}
port = ln.Addr().(*net.TCPAddr).Port
ln.Close()
}
return host, port, nil
}