sendou.ink/.github/workflows/e2e-tests.yml
2026-03-21 13:57:53 +02:00

72 lines
1.5 KiB
YAML

name: E2E Tests
on:
pull_request:
paths-ignore:
- 'content/**'
- 'public/**'
- 'locales/**'
- 'app/features/badges/homemade.json'
push:
branches:
- main
paths-ignore:
- 'content/**'
- 'public/**'
- 'locales/**'
- 'app/features/badges/homemade.json'
jobs:
e2e:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Start MinIO
run: docker compose up -d minio
- name: Wait for MinIO to be ready
run: |
for i in {1..30}; do
if curl -sf http://127.0.0.1:9000/minio/health/live; then
echo "MinIO is ready"
exit 0
fi
echo "Waiting for MinIO... ($i/30)"
sleep 2
done
echo "MinIO failed to start"
exit 1
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Install Playwright browsers
run: npx playwright install --with-deps
- name: Run E2E tests
run: npm run test:e2e
- name: Stop MinIO
if: always()
run: docker compose down
- uses: actions/upload-artifact@v4
if: failure()
with:
name: playwright-report
path: playwright-report/
retention-days: 30
- uses: actions/upload-artifact@v4
if: failure()
with:
name: playwright-traces
path: test-results/
retention-days: 30