Skip to main content
Glama

Lighthouse MCP

by mizchi
ci.yml5.58 kB
name: CI on: push: branches: [ main, develop ] pull_request: branches: [ main ] workflow_dispatch: jobs: lint: name: Lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v2 with: version: 8 - uses: actions/setup-node@v4 with: node-version: '20' cache: 'pnpm' - name: Install dependencies run: pnpm install --frozen-lockfile - name: Run ESLint run: pnpm lint typecheck: name: Type Check runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v2 with: version: 8 - uses: actions/setup-node@v4 with: node-version: '20' cache: 'pnpm' - name: Install dependencies run: pnpm install --frozen-lockfile - name: Run TypeScript compiler run: pnpm typecheck test: name: Test (Node ${{ matrix.node-version }}) runs-on: ubuntu-latest strategy: matrix: node-version: ['18', '20', '22'] steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v2 with: version: 8 - uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: 'pnpm' - name: Install dependencies run: pnpm install --frozen-lockfile - name: Run unit tests run: pnpm test:unit - name: Upload coverage reports if: matrix.node-version == '20' uses: codecov/codecov-action@v3 with: file: ./coverage/coverage-final.json flags: unittests name: codecov-umbrella build: name: Build runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v2 with: version: 8 - uses: actions/setup-node@v4 with: node-version: '20' cache: 'pnpm' - name: Install dependencies run: pnpm install --frozen-lockfile - name: Build project run: pnpm build - name: Check build output run: | if [ ! -d "dist" ]; then echo "Build failed: dist directory not found" exit 1 fi echo "Build successful: dist directory exists" ls -la dist/ - name: Upload build artifacts uses: actions/upload-artifact@v4 with: name: build-artifacts path: dist/ integration: name: Integration Tests runs-on: ubuntu-latest needs: [build] steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v2 with: version: 8 - uses: actions/setup-node@v4 with: node-version: '20' cache: 'pnpm' - name: Install Chrome uses: browser-actions/setup-chrome@v1 - name: Install dependencies run: pnpm install --frozen-lockfile - name: Download build artifacts uses: actions/download-artifact@v4 with: name: build-artifacts path: dist/ - name: Run integration tests run: pnpm test:integration env: CI: true CHROME_PATH: chrome lighthouse-test: name: Lighthouse Analysis Test runs-on: ubuntu-latest needs: [build] steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v2 with: version: 8 - uses: actions/setup-node@v4 with: node-version: '20' cache: 'pnpm' - name: Install Chrome uses: browser-actions/setup-chrome@v1 - name: Install dependencies run: pnpm install --frozen-lockfile - name: Download build artifacts uses: actions/download-artifact@v4 with: name: build-artifacts path: dist/ - name: Start test server run: | npx http-server test/fixtures -p 8080 & sleep 5 - name: Test Lighthouse on problem fixtures run: | # Test slow LCP detection node dist/cli.js http://localhost:8080/problem-cases/slow-lcp.html --json > lcp-result.json cat lcp-result.json | jq '.categories.performance.score' # Test third-party detection node dist/cli.js http://localhost:8080/problem-cases/third-party-heavy.html --json > third-party-result.json cat third-party-result.json | jq '.audits["third-party-summary"]' # Test CLS detection node dist/cli.js http://localhost:8080/problem-cases/high-cls.html --json > cls-result.json cat cls-result.json | jq '.audits["cumulative-layout-shift"]' - name: Upload Lighthouse results if: always() uses: actions/upload-artifact@v4 with: name: lighthouse-results path: | *-result.json all-checks: name: All Checks Passed runs-on: ubuntu-latest needs: [lint, typecheck, test, build, integration] if: always() steps: - name: Check job results run: | if [[ "${{ needs.lint.result }}" != "success" || "${{ needs.typecheck.result }}" != "success" || "${{ needs.test.result }}" != "success" || "${{ needs.build.result }}" != "success" || "${{ needs.integration.result }}" != "success" ]]; then echo "One or more checks failed" exit 1 fi echo "All checks passed successfully! ✅"

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/mizchi/lighthouse-mcp'

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