e2e-playwright.yml 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. name: E2E (Playwright)
  2. # Browser-driven end-to-end tests, in two suites:
  3. # static - Cine Studio front-end specs against a plain static server
  4. # system - full-stack critical-path specs (auth, desktop, file
  5. # explorer, system settings, user management / permission
  6. # control) against a real ArozOS server built from src/
  7. # The system suite exercises the Go core, so this workflow triggers on
  8. # any change to src/ as well as the test harness itself.
  9. on:
  10. push:
  11. paths:
  12. - "src/**"
  13. - "test/e2e/playwright/**"
  14. - ".github/workflows/e2e-playwright.yml"
  15. pull_request:
  16. paths:
  17. - "src/**"
  18. - "test/e2e/playwright/**"
  19. - ".github/workflows/e2e-playwright.yml"
  20. permissions:
  21. contents: read
  22. jobs:
  23. playwright:
  24. runs-on: ubuntu-latest
  25. defaults:
  26. run:
  27. working-directory: test/e2e/playwright
  28. steps:
  29. - name: Checkout
  30. uses: actions/checkout@v4
  31. - name: Set up Go
  32. uses: actions/setup-go@v5
  33. with:
  34. go-version-file: src/go.mod
  35. cache-dependency-path: src/go.sum
  36. - name: Build ArozOS server binary
  37. working-directory: src
  38. run: go build -o arozos .
  39. - name: Set up Node.js
  40. uses: actions/setup-node@v4
  41. with:
  42. node-version: "20"
  43. - name: Install dependencies
  44. run: npm install --no-audit --no-fund
  45. - name: Install Playwright Chromium (with OS deps)
  46. run: npx playwright install --with-deps chromium
  47. - name: Run E2E tests
  48. run: npm test
  49. - name: Upload ArozOS server log on failure
  50. if: failure()
  51. uses: actions/upload-artifact@v4
  52. with:
  53. name: arozos-server-log
  54. path: test/e2e/playwright/.instance/server.log
  55. if-no-files-found: ignore