-
Notifications
You must be signed in to change notification settings - Fork 95
Fix CI/CD pipeline: Enable comprehensive test execution for all language servers #130
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
- Rewrite test-workflow.yaml with proper package installation and separate jobs per language - Fix race condition in server.py process cleanup (psutil NoSuchProcess) - Fix timeout test for Python 3.10 compatibility (concurrent.futures.TimeoutError) - Fix Ruby tests to use set comparison for non-deterministic order - Fix requirements.txt jedi-language-server version mismatch - Update publish-to-pypi.yaml with proper pip install -e .
- Changed hardcoded test file lists to wildcard patterns (e.g., test_*python*.py) - Added C# tests back (they have @pytest.mark.skip so will show as skipped) - Combined TypeScript and JavaScript tests into one job
- Add 'github.repository == microsoft/multilspy' condition to publish jobs - Prevents PyPI publishing failures on forked repositories - Use wildcard patterns for test files
… init failure Eclipse JDT.LS scans for all JVM installations and tries to validate them. On GitHub Actions runners, the pre-installed temurin-8-jdk has permission issues that cause the language server initialization to fail with 'Permission denied' errors. This fix removes the problematic JDK directories before running tests.
- Added all language server dependencies (Node.js, Rust, Java, .NET) - Removed problematic JDK installations for Java tests - Changed pytest to run all tests in tests/multilspy/
| ruby-version: '3.4' | ||
| - name: Set up Python | ||
| uses: actions/setup-python@v5 | ||
| ruby-version: '3.3' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why degrade ruby version?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was using container ,it has ruby installed with 3.3 ,while updating the version have checked my version in local and updated it. I missed it and restored it back to original version.
- Python: 3.x (latest 3.x) - Go: stable (latest stable) - Ruby: ruby (latest stable) - Node.js: lts/* (latest LTS) - Java: 17 (LTS, required by Eclipse JDT.LS) - Rust: already uses @stable - .NET: already uses 8.0.x pattern
Restore .github/workflows to the version where Kotlin tests passed.
Summary
This PR fixes the CI/CD pipeline to properly execute tests for all supported language servers. Previously, tests were not running correctly due to missing dependencies, configuration issues, and workflow problems.
Changes
GitHub Actions Workflow (
test-workflow.yaml)goplsviago installsolargraphviagem installrust-analyzerviadtolnay/rust-toolchaintest_*python*.py) for automatic test discoveryall-tests-passedjob to verify all test jobs succeededPublish Workflow (
publish-to-pypi.yaml)microsoft/multilspy, preventing trusted publishing errors on forkspip install -e .andgem install solargraphTest Fixes
test_sync_multilspy_timeout.py: Handle bothTimeoutErrorandconcurrent.futures.TimeoutErrorfor Python 3.10 compatibilitytest_multilspy_ruby.py/test_sync_multilspy_ruby.py: Use set comparison for symbol names to handle non-deterministic ordering from SolargraphBug Fixes
src/multilspy/lsp_protocol_handler/server.py: Fixed race condition in process cleanup that causedpsutil.NoSuchProcesserrorsDependencies (
requirements.txt)jedi-language-serverversion to0.41.3pytestandpytest-asyncioto use minimum version constraintsTest Results
All language server tests now execute properly in CI:
Breaking Changes
None