Skip to content

CI: Fix TS7016 by removing local TS path maps to @debugmcp/shared; rely on project references #66

CI: Fix TS7016 by removing local TS path maps to @debugmcp/shared; rely on project references

CI: Fix TS7016 by removing local TS path maps to @debugmcp/shared; rely on project references #66

Workflow file for this run

name: CI
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main ]
jobs:
build-and-test:
name: Build and Test
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
node-version: [20.x]
python-version: ['3.11']
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
python -m pip install debugpy
- name: Install Node dependencies
run: npm ci
- name: Debug - Check shared package after install
run: |
echo "=== Checking @debugmcp/shared package structure ==="
echo "Contents of packages/shared:"
ls -la packages/shared/
echo ""
echo "Contents of packages/shared/dist (if exists):"
ls -la packages/shared/dist/ 2>/dev/null || echo "dist directory does not exist"
echo ""
echo "Contents of node_modules/@debugmcp (if exists):"
ls -la node_modules/@debugmcp/ 2>/dev/null || echo "@debugmcp directory does not exist"
echo ""
echo "Check symlink in adapter-mock:"
ls -la packages/adapter-mock/node_modules/@debugmcp/ 2>/dev/null || echo "No @debugmcp in adapter-mock node_modules"
- name: Build project
run: npm run build
- name: Run linting
run: npm run lint
# Use test:ci-no-python which excludes Python and e2e tests
- name: Run tests with coverage
run: npm run test:ci-no-python
env:
CI: true
- name: Upload coverage reports
uses: actions/upload-artifact@v4
if: matrix.os == 'ubuntu-latest'
with:
name: coverage-report
path: coverage/
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
if: matrix.os == 'ubuntu-latest'
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./coverage/coverage-final.json
flags: unittests
name: codecov-umbrella
fail_ci_if_error: false
lint:
name: Lint Code
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20.x'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run ESLint
run: npm run lint
- name: Check for personal information
run: npm run check:all-personal-paths
# Separate job for container tests on Linux only
container-tests:
name: Container Tests
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20.x'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run linting
run: npm run lint
- name: Build project
run: npm run build
- name: Build Docker image
run: docker build -t mcp-debugger:local .
- name: Run container tests
run: npm run test:e2e:container
test-summary:
name: Test Summary
needs: [build-and-test, container-tests]
runs-on: ubuntu-latest
if: always()
steps:
- name: Check test results
run: |
echo "✅ CI pipeline completed"
echo "Check the test results in the build-and-test job"