fix: implement Issue #74 validation and confidence fixes #186
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
| # TEMPORARILY DISABLED - Comprehensive Testing Workflow | |
| # Multi-layered testing strategy to prevent integration failures like fs.readJsonSync | |
| name: Comprehensive Testing | |
| on: | |
| push: | |
| branches: [ main, test ] | |
| pull_request: | |
| branches: [ main, test ] | |
| workflow_dispatch: | |
| inputs: | |
| ref: | |
| description: 'Branch or commit to test' | |
| required: false | |
| default: 'main' | |
| jobs: | |
| # Layer 1: Quick validation - fails fast on basic issues | |
| quick-validation: | |
| name: Quick Validation (Unit + Smoke) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Generate version files | |
| run: npm run prebuild | |
| - name: Type checking | |
| run: npm run type-check | |
| - name: Linting | |
| run: npm run lint:all | |
| - name: Unit tests | |
| run: npm run test:unit | |
| - name: Smoke tests | |
| run: npm run test:smoke | |
| - name: Upload unit test coverage | |
| uses: codecov/codecov-action@v4 | |
| if: success() | |
| with: | |
| files: ./coverage/lcov.info | |
| flags: unit-tests | |
| name: unit-test-coverage | |
| # Layer 2: Server lifecycle validation - catches startup/shutdown issues | |
| lifecycle-validation: | |
| name: Server Lifecycle Testing | |
| runs-on: ubuntu-latest | |
| needs: quick-validation | |
| timeout-minutes: 15 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Generate version files | |
| run: npm run prebuild | |
| - name: Server lifecycle tests | |
| run: npm run test:lifecycle | |
| env: | |
| NODE_ENV: test | |
| # Layer 3: Integration testing - real MCP protocol validation | |
| integration-testing: | |
| name: MCP Protocol Integration (18, 20, 22) | |
| runs-on: ubuntu-latest | |
| needs: quick-validation | |
| timeout-minutes: 20 | |
| strategy: | |
| matrix: | |
| node-version: ['18', '20', '22'] | |
| 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: Install dependencies | |
| run: npm ci | |
| - name: Generate version files | |
| run: npm run prebuild | |
| - name: Integration tests | |
| run: npm run test:integration | |
| env: | |
| NODE_ENV: test | |
| AGENT_COMM_TEST_TIMEOUT: 60000 | |
| - name: Upload integration test results | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: integration-test-results-node-${{ matrix.node-version }} | |
| path: test-results/ | |
| # Layer 4: End-to-end testing - full system validation (PR only) | |
| e2e-testing: | |
| name: End-to-End Testing | |
| runs-on: ubuntu-latest | |
| needs: [lifecycle-validation, integration-testing] | |
| if: github.event_name == 'pull_request' | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Generate version files | |
| run: npm run prebuild | |
| - name: E2E tests | |
| run: npm run test:e2e | |
| env: | |
| NODE_ENV: test | |
| AGENT_COMM_E2E_TIMEOUT: 120000 | |
| - name: Upload E2E test results | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: e2e-test-results | |
| path: test-results/ | |
| # Performance regression testing (PR only) | |
| performance-testing: | |
| name: Performance Regression Testing | |
| runs-on: ubuntu-latest | |
| needs: integration-testing | |
| if: github.event_name == 'pull_request' | |
| timeout-minutes: 25 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Generate version files | |
| run: npm run prebuild | |
| - name: Performance benchmarks | |
| run: npm run test:e2e -- --testNamePattern="Performance" | |
| env: | |
| NODE_ENV: test | |
| - name: Upload performance results | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: performance-test-results | |
| path: test-results/ | |
| # Security and dependency scanning | |
| security-scan: | |
| name: Security & Dependency Scan | |
| runs-on: ubuntu-latest | |
| needs: quick-validation | |
| timeout-minutes: 10 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Run security audit | |
| run: npm audit --audit-level=high | |
| - name: Check for outdated dependencies | |
| run: npm outdated || true | |
| # Test summary and coverage aggregation | |
| test-summary: | |
| name: Test Summary & Coverage | |
| runs-on: ubuntu-latest | |
| needs: [quick-validation, lifecycle-validation, integration-testing] | |
| if: always() | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Generate version files | |
| run: npm run prebuild | |
| - name: Generate comprehensive coverage report | |
| run: npm run test:all | |
| continue-on-error: true | |
| - name: Upload comprehensive coverage | |
| uses: codecov/codecov-action@v4 | |
| with: | |
| files: ./coverage/lcov.info | |
| flags: comprehensive-tests | |
| name: comprehensive-coverage | |
| - name: Test Results Summary | |
| if: always() | |
| run: | | |
| echo "## Test Results Summary" >> $GITHUB_STEP_SUMMARY | |
| echo "| Test Layer | Status |" >> $GITHUB_STEP_SUMMARY | |
| echo "|------------|--------|" >> $GITHUB_STEP_SUMMARY | |
| echo "| Quick Validation | ${{ needs.quick-validation.result }} |" >> $GITHUB_STEP_SUMMARY | |
| echo "| Lifecycle Testing | ${{ needs.lifecycle-validation.result }} |" >> $GITHUB_STEP_SUMMARY | |
| echo "| Integration Testing | ${{ needs.integration-testing.result }} |" >> $GITHUB_STEP_SUMMARY | |
| if [ "${{ github.event_name }}" = "pull_request" ]; then | |
| echo "| E2E Testing | ${{ needs.e2e-testing.result }} |" >> $GITHUB_STEP_SUMMARY | |
| fi | |
| # Deployment readiness check (main branch only) | |
| deployment-readiness: | |
| name: Deployment Readiness Check | |
| runs-on: ubuntu-latest | |
| needs: [test-summary, security-scan] | |
| if: github.ref == 'refs/heads/main' && github.event_name == 'push' | |
| timeout-minutes: 5 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Build check | |
| run: npm run build | |
| - name: Package validation | |
| run: | | |
| echo "Checking package integrity..." | |
| npm pack --dry-run | |
| - name: Deployment readiness summary | |
| run: | | |
| echo "## 🚀 Deployment Readiness" >> $GITHUB_STEP_SUMMARY | |
| echo "✅ All tests passed" >> $GITHUB_STEP_SUMMARY | |
| echo "✅ Security scan clean" >> $GITHUB_STEP_SUMMARY | |
| echo "✅ Build successful" >> $GITHUB_STEP_SUMMARY | |
| echo "✅ Package validated" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "Ready for production deployment! 🎉" >> $GITHUB_STEP_SUMMARY |