Implement MCP Real-time Streaming, Notifications, and Connection Health Monitoring (Issues #3, #4, #5, #6) #42
Workflow file for this run
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
name: CI | |
on: | |
push: | |
branches: [ main, develop ] | |
pull_request: | |
branches: [ main, develop ] | |
env: | |
RUST_BACKTRACE: 1 | |
jobs: | |
test: | |
name: Test | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-22.04, windows-latest, macOS-latest] | |
rust: [stable] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: ${{ matrix.rust }} | |
components: rustfmt, clippy | |
- name: Cache cargo | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- name: Install dependencies (Ubuntu) | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libayatana-appindicator3-dev librsvg2-dev libsoup2.4-dev | |
- name: Check formatting | |
run: cargo fmt -- --check | |
- name: Run clippy on server | |
run: cargo clippy --package glsp-mcp-server --all-targets -- -D warnings | |
- name: Check if web client dist exists | |
id: check-dist | |
run: | | |
if [ -d "glsp-web-client/dist" ]; then | |
echo "dist_exists=true" >> $GITHUB_OUTPUT | |
else | |
echo "dist_exists=false" >> $GITHUB_OUTPUT | |
fi | |
shell: bash | |
- name: Run clippy on Tauri | |
if: steps.check-dist.outputs.dist_exists == 'true' | |
run: cargo clippy --package glsp-desktop --all-targets --all-features -- -D warnings | |
- name: Run tests on server | |
run: cargo test --package glsp-mcp-server | |
- name: Run tests on Tauri | |
if: steps.check-dist.outputs.dist_exists == 'true' | |
run: cargo test --package glsp-desktop | |
build-web-client: | |
name: Build Web Client | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
cache: 'npm' | |
cache-dependency-path: glsp-web-client/package-lock.json | |
- name: Install dependencies | |
working-directory: ./glsp-web-client | |
run: npm ci | |
- name: Build | |
working-directory: ./glsp-web-client | |
run: npx vite build | |
build-tauri: | |
name: Build Tauri (Test) | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-22.04, windows-latest, macOS-latest] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@stable | |
- name: Install dependencies (Ubuntu) | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libayatana-appindicator3-dev librsvg2-dev libsoup2.4-dev | |
- name: Install web client dependencies | |
working-directory: ./glsp-web-client | |
run: npm ci | |
- name: Build web client | |
working-directory: ./glsp-web-client | |
run: npx vite build | |
- name: Install Tauri dependencies | |
working-directory: ./glsp-tauri | |
run: npm ci | |
- name: Build Tauri (not bundled for CI speed) | |
working-directory: ./glsp-tauri | |
run: npx tauri build --debug |