Adds cleanup-services stage to child pipeline that destroys any
existing test services before the 42-language parallel test matrix
runs. Prevents concurrency limit failures from orphaned services.
Updates generate-perf-report.sh to produce markdown with:
- Embedded chart images for all 6 visualizations
- Dynamic observations pulled from actual performance data
- Slowest/fastest language names extracted from JSON
- Raw data table at the end
The markdown now matches the manual report format and will be
generated automatically on each tagged release.
- Add setup-ci-deploy-key target to automate SSH deploy key creation
- Use protected=true so DEPLOY_KEY only exposed on protected tags
- Add test-ci-deploy-key target to verify SSH access
- Add remove-ci-deploy-key target for cleanup
- Include instructions about protecting release tags in GitLab
- Add input validation for tag format
- Check for required tools (curl, jq, bc)
- Skip if report already exists (idempotent)
- Add colored logging for better visibility
- Handle push failures gracefully
- Use 'rules' instead of 'only' for modern GitLab CI
- Add GIT_DEPTH: 0 for full history access
- Add scripts/generate-perf-charts.py for matplotlib visualizations
- Update generate-perf-report.sh for versioned directories (reports/TAG/)
- Add make perf-charts and make perf-all targets
- Add GitLab CI perf-report job to auto-commit after tagged releases
- Generated 6 charts for 4.2.0: dashboard, duration, histogram, leaders, etc.
Each release now gets its own reports/TAG/ directory with:
- perf.json (raw timing data)
- perf.md (markdown report)
- chart-*.png (6 visualizations)
SDKs that run but produce no output (e.g., waiting for CLI args)
should pass since the runtime executed successfully. This fixes
php and javascript sdk_runs tests that exit cleanly with no output.
- Languages outputs one per line, not comma-separated
- Sessions are interactive, can only test --list
- Service create uses --name (--create implied)
- Add more acceptable patterns for API errors
Remove compiled language filter - the sandbox has compilers!
Now tests Go, Rust, C, C++, Java, Kotlin, etc. through the API.
Added hello world code for all compiled languages.