Repository navigation
89 lines (71 loc) · 2.44 KB
/
Copy pathnightly.yml
File metadata and controls
89 lines (71 loc) · 2.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
name: Weekly full test run
# Catches drift that no commit introduces: new browser builds, and new React / Vite / exceljs /
# jspdf releases within the fixtures' semver ranges (`--fresh` ignores the fixture lockfiles).
on:
schedule:
- cron: '0 3 * * 1'
workflow_dispatch:
permissions:
contents: read
jobs:
full:
runs-on: ubuntu-24.04
timeout-minutes: 60
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Setup Node
uses: actions/setup-node@v7
with:
node-version: 22
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Install Playwright browsers
run: npx playwright install --with-deps chromium firefox webkit
- name: Unit and browser tests
run: npm run test:all
- name: Package smoke suite (fixture dependencies re-resolved to the latest in range)
run: npm run test:smoke -- --fresh
- name: Upload Playwright report
if: failure()
uses: actions/upload-artifact@v4
with:
name: playwright-report
path: |
playwright-report/
test-results/
retention-days: 14
if-no-files-found: ignore
# Large-dataset benchmark (bench/run.mjs), Chromium only and --quick. Shared runners are too noisy to
# gate on timings: the numbers are uploaded so trends are visible, and the job fails only when the
# benchmark itself breaks (a script error, a page error, a result that never appears).
bench:
runs-on: ubuntu-24.04
timeout-minutes: 45
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Setup Node
uses: actions/setup-node@v7
with:
node-version: 22
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Install Playwright Chromium
run: npx playwright install --with-deps chromium
- name: Benchmark (Chromium, quick)
run: npm run bench -- --quick --engine chromium --out bench-results.json
- name: Benchmark tables
if: always()
run: |
if [ -f bench-results.json ]; then node bench/report.mjs bench-results.json >> "$GITHUB_STEP_SUMMARY"; fi
- name: Upload benchmark results
if: always()
uses: actions/upload-artifact@v4
with:
name: bench-results
path: bench-results.json
retention-days: 90
if-no-files-found: ignore