unit-test.yml 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. name: Unit Tests
  2. on:
  3. push:
  4. branches: [master, develop]
  5. pull_request:
  6. branches: [master, develop]
  7. jobs:
  8. unit-test:
  9. name: Vitest Unit Tests
  10. runs-on: ubuntu-latest
  11. steps:
  12. - name: Checkout code
  13. uses: actions/checkout@v4
  14. - name: Setup Node.js
  15. uses: actions/setup-node@v4
  16. with:
  17. node-version: '20'
  18. cache: 'npm'
  19. cache-dependency-path: server/package-lock.json
  20. - name: Install dependencies
  21. working-directory: server
  22. run: npm ci
  23. - name: Run unit tests
  24. working-directory: server
  25. run: npm run test:unit
  26. - name: Upload coverage
  27. if: always()
  28. uses: actions/upload-artifact@v4
  29. with:
  30. name: coverage-report
  31. path: coverage/
  32. retention-days: 7
  33. - name: Check coverage thresholds
  34. working-directory: server
  35. run: |
  36. echo "## Coverage Report" >> $GITHUB_STEP_SUMMARY
  37. cat coverage/coverage-summary.json 2>/dev/null || echo "Coverage report not available"