package.json: Remove internal task management scripts #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, template-prep ] | |
| pull_request: | |
| branches: [ main, develop ] | |
| jobs: | |
| lint: | |
| name: Lint & Format Check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '18' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Run ESLint | |
| run: npm run lint | |
| - name: Check formatting | |
| run: npm run format:check | |
| unit-tests: | |
| name: Unit Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '18' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Run unit tests | |
| run: npm run test:unit | |
| env: | |
| CI: true | |
| - name: Upload coverage | |
| uses: codecov/codecov-action@v4 | |
| if: always() | |
| with: | |
| files: ./coverage/coverage-final.json | |
| flags: unittests | |
| name: unit-tests | |
| fail_ci_if_error: false | |
| env: | |
| CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
| integration-tests: | |
| name: Integration Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '18' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Run integration tests | |
| run: npm run test:integration | |
| env: | |
| CI: true | |
| build: | |
| name: Build & Validate | |
| runs-on: ubuntu-latest | |
| needs: [lint, unit-tests, integration-tests] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '18' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Validate package.json | |
| run: npm run validate || echo "Validation script not found, skipping" | |
| - name: Check for security vulnerabilities | |
| run: npm audit --audit-level=high | |
| continue-on-error: true | |
| # E2E tests are commented out until app: format issue is resolved | |
| # e2e-tests: | |
| # name: End-to-End Tests | |
| # runs-on: ubuntu-latest | |
| # if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
| # needs: [build] | |
| # | |
| # steps: | |
| # - uses: actions/checkout@v4 | |
| # | |
| # - name: Setup Node.js | |
| # uses: actions/setup-node@v4 | |
| # with: | |
| # node-version: '18' | |
| # cache: 'npm' | |
| # | |
| # - name: Install dependencies | |
| # run: npm ci | |
| # | |
| # - name: Run E2E tests | |
| # run: npm run test:e2e | |
| # env: | |
| # CI: true | |
| # TWILIO_ACCOUNT_SID: ${{ secrets.TWILIO_ACCOUNT_SID }} | |
| # TWILIO_AUTH_TOKEN: ${{ secrets.TWILIO_AUTH_TOKEN }} | |
| # AGENT_PHONE_NUMBER: ${{ secrets.AGENT_PHONE_NUMBER }} | |
| # SERVERLESS_DOMAIN: ${{ secrets.SERVERLESS_DOMAIN }} | |
| # TWIML_APP_SID: ${{ secrets.TWIML_APP_SID }} | |
| # OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} | |
| status-check: | |
| name: All Tests Passed | |
| runs-on: ubuntu-latest | |
| needs: [lint, unit-tests, integration-tests, build] | |
| if: always() | |
| steps: | |
| - name: Check test results | |
| run: | | |
| if [ "${{ needs.lint.result }}" == "failure" ] || \ | |
| [ "${{ needs.unit-tests.result }}" == "failure" ] || \ | |
| [ "${{ needs.integration-tests.result }}" == "failure" ] || \ | |
| [ "${{ needs.build.result }}" == "failure" ]; then | |
| echo "❌ One or more checks failed" | |
| exit 1 | |
| else | |
| echo "✅ All checks passed" | |
| fi |