| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- name: E2E (Playwright)
- # Browser-driven end-to-end tests, in two suites:
- # static - Cine Studio front-end specs against a plain static server
- # system - full-stack critical-path specs (auth, desktop, file
- # explorer, system settings, user management / permission
- # control) against a real ArozOS server built from src/
- # The system suite exercises the Go core, so this workflow triggers on
- # any change to src/ as well as the test harness itself.
- on:
- push:
- paths:
- - "src/**"
- - "test/e2e/playwright/**"
- - ".github/workflows/e2e-playwright.yml"
- pull_request:
- paths:
- - "src/**"
- - "test/e2e/playwright/**"
- - ".github/workflows/e2e-playwright.yml"
- permissions:
- contents: read
- jobs:
- playwright:
- runs-on: ubuntu-latest
- defaults:
- run:
- working-directory: test/e2e/playwright
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- - name: Set up Go
- uses: actions/setup-go@v5
- with:
- go-version-file: src/go.mod
- cache-dependency-path: src/go.sum
- - name: Build ArozOS server binary
- working-directory: src
- run: go build -o arozos .
- - name: Set up Node.js
- uses: actions/setup-node@v4
- with:
- node-version: "20"
- - name: Install dependencies
- run: npm install --no-audit --no-fund
- - name: Install Playwright Chromium (with OS deps)
- run: npx playwright install --with-deps chromium
- - name: Run E2E tests
- run: npm test
- - name: Upload ArozOS server log on failure
- if: failure()
- uses: actions/upload-artifact@v4
- with:
- name: arozos-server-log
- path: test/e2e/playwright/.instance/server.log
- if-no-files-found: ignore
|