Initial release: MCP Code Execution Server for LobeHub v2 #1
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: Test Suite | |
| on: | |
| push: | |
| branches: [ main, develop ] | |
| pull_request: | |
| branches: [ main ] | |
| jobs: | |
| unit-tests: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Build TypeScript | |
| run: npm run build | |
| - name: Run unit tests | |
| run: npm run test:unit | |
| e2e-tests: | |
| runs-on: ubuntu-latest | |
| needs: unit-tests | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Setup Docker | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Build TypeScript | |
| run: npm run build | |
| - name: Build Docker image | |
| run: npm run docker:build | |
| - name: Run E2E tests | |
| run: npm run test:e2e | |
| timeout-minutes: 15 | |
| - name: Cleanup Docker containers | |
| if: always() | |
| run: | | |
| docker ps -a --filter "label=mcp-session" -q | xargs -r docker rm -f || true | |
| docker system prune -f | |
| security-tests: | |
| runs-on: ubuntu-latest | |
| needs: e2e-tests | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Setup Docker | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Build TypeScript | |
| run: npm run build | |
| - name: Build Docker image | |
| run: npm run docker:build | |
| - name: Run security tests | |
| run: | | |
| npm test -- --testNamePattern="Security|Isolation|Cleanup" --testTimeout=120000 | |
| timeout-minutes: 10 | |
| - name: Cleanup | |
| if: always() | |
| run: | | |
| docker ps -a --filter "label=mcp-session" -q | xargs -r docker rm -f || true | |
| coverage: | |
| runs-on: ubuntu-latest | |
| needs: [unit-tests, e2e-tests] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Setup Docker | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Build TypeScript | |
| run: npm run build | |
| - name: Build Docker image | |
| run: npm run docker:build | |
| - name: Run all tests with coverage | |
| run: npm test | |
| timeout-minutes: 15 | |
| - name: Upload coverage report | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: coverage-report | |
| path: coverage/ | |
| - name: Cleanup | |
| if: always() | |
| run: | | |
| docker ps -a --filter "label=mcp-session" -q | xargs -r docker rm -f || true |