Skip to main content
Glama
build.yamlβ€’6.8 kB
name: Build & Test permissions: contents: read on: push: branches: [main] pull_request: jobs: unit-tests: name: πŸ§ͺ Build & Unit Tests runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup and Install uses: ./.github/actions/setup-and-install - name: 🎨 Format check run: pnpm format --check - name: πŸ” Lint run: pnpm lint - name: βš’οΈ Build run: pnpm build - name: πŸ§ͺ Run unit tests run: pnpm test:unit - name: πŸ“Š Upload unit test report uses: actions/upload-artifact@v4 if: always() with: name: unit-test-report path: test-results/ retention-days: 30 integration-typescript: name: πŸ”· TypeScript Integration runs-on: ubuntu-latest needs: unit-tests steps: - uses: actions/checkout@v4 - name: Setup and Install uses: ./.github/actions/setup-and-install - name: Install TypeScript Language Server run: pnpm install -g typescript-language-server typescript - name: Verify typescript-language-server installation run: typescript-language-server --version - name: Build project run: pnpm build - name: Run TypeScript integration tests run: pnpm test:integration:typescript timeout-minutes: 10 - name: πŸ“Š Upload TypeScript integration test report uses: actions/upload-artifact@v4 if: always() with: name: typescript-integration-report path: test-results/ retention-days: 30 integration-python: name: 🐍 Pyright Integration runs-on: ubuntu-latest needs: unit-tests steps: - uses: actions/checkout@v4 - name: Setup and Install uses: ./.github/actions/setup-and-install - name: Setup Python uses: actions/setup-python@v5 with: python-version: '3.13' - name: Install Pyright Language Server run: pnpm install -g pyright - name: Verify pyright-langserver installation run: which pyright-langserver - name: Build project run: pnpm build - name: Run Python integration tests run: pnpm test:integration:python timeout-minutes: 10 - name: πŸ“Š Upload Python integration test report uses: actions/upload-artifact@v4 if: always() with: name: python-integration-report path: test-results/ retention-days: 30 integration-csharp: name: 🟦 C# Integration runs-on: ubuntu-latest needs: unit-tests steps: - uses: actions/checkout@v4 - name: Setup and Install uses: ./.github/actions/setup-and-install - name: Setup .NET uses: actions/setup-dotnet@v4 with: dotnet-version: | 9.0.x 8.0.x - name: Print architecture run: uname -m - name: Print runtimes run: dotnet --list-runtimes - name: Install C# Language Server (Roslyn) run: | dotnet restore scripts/ServerDownload.csproj \ /p:Platform=linux-x64 \ /p:ServerPath=$HOME/.csharp-lsp/ $HOME/.csharp-lsp/Microsoft.CodeAnalysis.LanguageServer --version - name: Test run of C# Language Server run: | $HOME/.csharp-lsp/Microsoft.CodeAnalysis.LanguageServer \ --logLevel=Information \ --extensionLogDirectory=$HOME/.csharp-lsp/logs \ --stdio timeout-minutes: 1 # In CI we run against the build output - name: Build project run: pnpm build #- name: Try running CLI # run: node dist/index.js --config test/integration/languages/csharp/language-servers.yaml --workspace test/integration/languages/csharp/test-project # timeout-minutes: 1 - name: 🟦 Run C# integration tests run: pnpm test:integration:csharp:ci timeout-minutes: 10 - name: Print logs run: tail $HOME/.local/state/symbols-nodejs/*.log if: always() - name: πŸ“Š Upload C# integration test report uses: actions/upload-artifact@v4 if: always() with: name: csharp-integration-report path: test-results/ retention-days: 30 integration-go: name: 🐹 Go Integration runs-on: ubuntu-latest needs: unit-tests steps: - uses: actions/checkout@v4 - name: Setup and Install uses: ./.github/actions/setup-and-install - name: Setup Go uses: actions/setup-go@v5 with: go-version: '1.21' - name: Install Go Language Server (gopls) run: go install golang.org/x/tools/gopls@latest - name: Verify gopls installation run: gopls version - name: Build project run: pnpm build - name: Install Go project dependencies run: cd test/integration/languages/go/test-project && go mod tidy - name: 🐹 Run Go integration tests run: pnpm test:integration:go:ci timeout-minutes: 10 - name: πŸ“Š Upload Go integration test report uses: actions/upload-artifact@v4 if: always() with: name: go-integration-report path: test-results/ retention-days: 30 integration-rust: name: πŸ¦€ Rust Integration runs-on: ubuntu-latest needs: unit-tests steps: - uses: actions/checkout@v4 - name: Setup and Install uses: ./.github/actions/setup-and-install - name: Setup Rust uses: actions-rs/toolchain@v1 with: toolchain: stable profile: minimal override: true components: rust-src - name: Install Rust Language Server (rust-analyzer) run: | mkdir -p ~/.local/bin curl -L https://github.com/rust-lang/rust-analyzer/releases/latest/download/rust-analyzer-x86_64-unknown-linux-gnu.gz | gunzip -c - > ~/.local/bin/rust-analyzer chmod +x ~/.local/bin/rust-analyzer echo "$HOME/.local/bin" >> $GITHUB_PATH - name: Verify rust-analyzer installation run: rust-analyzer --version - name: Build project run: pnpm build - name: Install Rust project dependencies run: cd test/integration/languages/rust/test-project && cargo check - name: πŸ¦€ Run Rust integration tests run: pnpm test:integration:rust:ci timeout-minutes: 10 - name: πŸ“Š Upload Rust integration test report uses: actions/upload-artifact@v4 if: always() with: name: rust-integration-report path: test-results/ retention-days: 30

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/p1va/symbols-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server