- Introduced `.prettierrc.json` to enforce consistent code formatting across the project. - Updated unit and e2e test files to address formatting issues, improve readability, and ensure alignment with the new Prettier configuration.
123 lines
2.9 KiB
YAML
123 lines
2.9 KiB
YAML
name: Automated Tests
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches: [main, dev]
|
|
workflow_dispatch:
|
|
schedule:
|
|
- cron: "0 2 * * *"
|
|
|
|
jobs:
|
|
format-tests:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 22
|
|
cache: npm
|
|
|
|
- name: Install dependencies
|
|
run: npm ci --legacy-peer-deps
|
|
|
|
- name: Check frontend test formatting
|
|
run: npm run format:tests:check
|
|
|
|
build-and-unit:
|
|
needs: format-tests
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 22
|
|
cache: npm
|
|
|
|
- name: Install dependencies
|
|
run: npm ci --legacy-peer-deps
|
|
|
|
- name: Build sanity check
|
|
run: npm run build
|
|
|
|
- name: Unit tests
|
|
run: npm run test:unit
|
|
|
|
e2e-smoke:
|
|
if: github.event_name != 'schedule'
|
|
needs: build-and-unit
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
project: [chromium-desktop, chromium-mobile]
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 22
|
|
cache: npm
|
|
|
|
- name: Install dependencies
|
|
run: npm ci --legacy-peer-deps
|
|
|
|
- name: Install Playwright browsers
|
|
run: npx playwright install --with-deps chromium
|
|
|
|
- name: Run Playwright smoke tests (${{ matrix.project }})
|
|
run: npx playwright test --grep @smoke --project="${{ matrix.project }}"
|
|
|
|
- name: Upload Playwright report
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: playwright-report-smoke-${{ matrix.project }}
|
|
path: |
|
|
output/playwright/report
|
|
output/playwright/test-results
|
|
if-no-files-found: ignore
|
|
retention-days: 7
|
|
|
|
e2e-full:
|
|
if: github.event_name == 'schedule' || github.ref == 'refs/heads/main'
|
|
needs: build-and-unit
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 22
|
|
cache: npm
|
|
|
|
- name: Install dependencies
|
|
run: npm ci --legacy-peer-deps
|
|
|
|
- name: Install Playwright browsers
|
|
run: npx playwright install --with-deps
|
|
|
|
- name: Run full Playwright suite
|
|
run: npm run test:e2e:ci
|
|
|
|
- name: Upload Playwright report
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: playwright-report-full
|
|
path: |
|
|
output/playwright/report
|
|
output/playwright/test-results
|
|
if-no-files-found: ignore
|
|
retention-days: 14
|