format-build-frontend.yaml 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. name: Frontend Build
  2. on:
  3. push:
  4. branches:
  5. - main
  6. - dev
  7. paths-ignore:
  8. - 'backend/**'
  9. - 'pyproject.toml'
  10. - 'uv.lock'
  11. pull_request:
  12. branches:
  13. - main
  14. - dev
  15. paths-ignore:
  16. - 'backend/**'
  17. - 'pyproject.toml'
  18. - 'uv.lock'
  19. jobs:
  20. build:
  21. name: 'Format & Build Frontend'
  22. runs-on: ubuntu-latest
  23. steps:
  24. - name: Checkout Repository
  25. uses: actions/checkout@v4
  26. - name: Setup Node.js
  27. uses: actions/setup-node@v4
  28. with:
  29. node-version: '22'
  30. - name: Install Dependencies
  31. run: npm install --force
  32. - name: Format Frontend
  33. run: npm run format
  34. - name: Run i18next
  35. run: npm run i18n:parse
  36. - name: Check for Changes After Format
  37. run: git diff --exit-code
  38. - name: Build Frontend
  39. run: npm run build
  40. test-frontend:
  41. name: 'Frontend Unit Tests'
  42. runs-on: ubuntu-latest
  43. steps:
  44. - name: Checkout Repository
  45. uses: actions/checkout@v4
  46. - name: Setup Node.js
  47. uses: actions/setup-node@v4
  48. with:
  49. node-version: '22'
  50. - name: Install Dependencies
  51. run: npm ci --force
  52. - name: Run vitest
  53. run: npm run test:frontend