created http stream mcp template #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: CI/CD Pipeline | |
| on: | |
| push: | |
| branches: [ main, develop ] | |
| pull_request: | |
| branches: [ main ] | |
| jobs: | |
| test: | |
| name: Test and Build | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| node-version: [18.x, 20.x] | |
| 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: Run type checking | |
| run: npm run typecheck | |
| - name: Run linter | |
| run: npm run lint | |
| - name: Check code formatting | |
| run: npm run format:check | |
| - name: Run tests with coverage | |
| run: npm run test:coverage | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v3 | |
| with: | |
| file: ./coverage/coverage-final.json | |
| flags: unittests | |
| name: codecov-umbrella | |
| - name: Build project | |
| run: npm run build | |
| - name: Test built application | |
| run: | | |
| timeout 10s npm start & | |
| sleep 5 | |
| curl -f http://localhost:3000/health || exit 1 | |
| docker: | |
| name: Docker Build | |
| runs-on: ubuntu-latest | |
| needs: test | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Build production Docker image | |
| run: | | |
| docker build -t http-stream-mcp-template:latest . | |
| - name: Test Docker image | |
| run: | | |
| docker run -d --name test-container -p 3000:3000 http-stream-mcp-template:latest | |
| sleep 10 | |
| curl -f http://localhost:3000/health || exit 1 | |
| docker stop test-container | |
| docker rm test-container | |
| - name: Build development Docker image | |
| run: | | |
| docker build -f Dockerfile.dev -t http-stream-mcp-template:dev . | |
| security: | |
| name: Security Scan | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Run npm audit | |
| run: npm audit --audit-level moderate | |
| - name: Run Trivy vulnerability scanner | |
| uses: aquasecurity/trivy-action@master | |
| with: | |
| scan-type: 'fs' | |
| scan-ref: '.' | |
| format: 'sarif' | |
| output: 'trivy-results.sarif' | |
| - name: Upload Trivy scan results to GitHub Security tab | |
| uses: github/codeql-action/upload-sarif@v2 | |
| if: always() | |
| with: | |
| sarif_file: 'trivy-results.sarif' |