-- is the command, run as given, without a shell. For a pipeline use -- sh -c '...', and pair it with --runner or --junit, since zode-ci cannot see the runner inside a shell.
Runners it understands
auto looks through npx, pnpm exec, yarn, bunx, node_modules/.bin/, python -m, uv run and poetry run. For npm test, npm run <script>, pnpm and yarn scripts it reads package.json and detects the runner when the script is a single command. make test, turbo, nx and shell scripts are not detected: the command runs unchanged and nothing is stored, with a notice naming --runner and --junit. When the command already asks for the same report, zode-ci reads yours instead of adding its own.
Playwright and cargo-nextest work today through --junit.
Exit code
Always the command’s own (a command killed by signaln gives 128+n). The only codes of its own come before the command starts: 2 for a usage error, 127 when the command is not found.
Where results go
Each run is stored with its counts and every test’s result, duration and, when selection ran, its decision. Read them in the console on the job, or with the API:GET /v1/ci/test-runs?repo=<owner/name>, GET /v1/ci/test-runs/{id} and GET /v1/ci/test-runs/{id}/tests.