Fix CI/CD pipeline: Enable comprehensive test execution for all language servers#130
Merged
LakshyAAAgrawal merged 17 commits intomicrosoft:mainfrom Feb 5, 2026
Merged
Fix CI/CD pipeline: Enable comprehensive test execution for all language servers#130LakshyAAAgrawal merged 17 commits intomicrosoft:mainfrom
LakshyAAAgrawal merged 17 commits intomicrosoft:mainfrom
Conversation
added 5 commits
January 16, 2026 23:50
- 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' |
Collaborator
There was a problem hiding this comment.
Why degrade ruby version?
Contributor
Author
There was a problem hiding this comment.
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.
added 4 commits
January 17, 2026 08:44
- 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
added 3 commits
January 17, 2026 09:38
Restore .github/workflows to the version where Kotlin tests passed.
LakshyAAAgrawal
approved these changes
Jan 31, 2026
Collaborator
|
All changes look great to me. One concern is that since the tests are now all being performed in different jobs, there could be scenarios where a new test is added, but is not part of one of the job filters. That test will NOT run in the CI/CD pipeline then. We should have a catch-all test, that matches rest of the tests. Can you implement that as well? |
LakshyAAAgrawal
approved these changes
Feb 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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