Skip to content

Commit 1aa0c6d

Browse files
committed
fix(test): fix parallel test server isolation — remove shared ctx.port fallback
## Summary - Replace `|| ctx.port` shared-context fallback with a hard assertion in all four test modules (`client-typescript`, `client-python`, `client-mcp`, `nodes`); each module already starts its own server on a dynamically assigned port (`--port=0`), but the fallback silently routed subprocesses to whichever module's port was written last to the shared Listr2 context - Remove the `-s` sequential workaround from CI (added in #734) — parallel execution is now safe by construction - Update stale `:5565` comment in `_build.yaml` to reflect dynamic per-module port allocation ## Type fix ## Testing - [ ] Tests added or updated - [x] Tested locally - [ ] `./builder test` passes ## Checklist - [x] Commit messages follow [conventional commits](https://www.conventionalcommits.org/) - [x] No secrets or credentials included - [ ] Wiki updated (if applicable) - [ ] Breaking changes documented (if applicable) ## Linked Issue Fixes #741
1 parent b149042 commit 1aa0c6d

5 files changed

Lines changed: 390 additions & 421 deletions

File tree

.github/workflows/_build.yaml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -124,15 +124,16 @@ jobs:
124124

125125
- name: Test
126126
if: inputs.codeql == false
127-
# Integration tests boot a local server on :5565 and connect a test
128-
# client. Both sides need the same shared secret to authenticate;
129-
# without ROCKETRIDE_APIKEY the server raises AuthenticationException
130-
# and the client tests fail with "No authentication configured".
131-
# The secret value itself doesn't matter — it just has to match
132-
# between server and client in this single CI run.
127+
# Each test module boots its own server on a dynamically assigned port
128+
# (--port=0) and connects via ROCKETRIDE_URI set per subprocess. Both
129+
# sides need the same shared secret to authenticate; without
130+
# ROCKETRIDE_APIKEY the server raises AuthenticationException and the
131+
# client tests fail with "No authentication configured". The secret
132+
# value itself doesn't matter — it just has to match between server
133+
# and client in this single CI run.
133134
env:
134135
ROCKETRIDE_APIKEY: ${{ secrets.ROCKETRIDE_APIKEY }}
135-
run: ${{ matrix.builder_cmd }} test --verbose -s
136+
run: ${{ matrix.builder_cmd }} test --verbose
136137

137138
- name: Perform CodeQL Analysis
138139
if: inputs.codeql && matrix.platform == 'ubuntu'

0 commit comments

Comments
 (0)