44 branches : [ main, staging ]
55 pull_request :
66 branches : [ main, staging ]
7+
8+ concurrency :
9+ group : ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
10+ cancel-in-progress : true
11+
712jobs :
813 test :
914 timeout-minutes : 60
@@ -22,11 +27,11 @@ jobs:
2227 steps :
2328 - uses : actions/checkout@v4
2429
25- - uses : actions/setup-node@v4
30+ - uses : actions/setup-node@v6
2631 with :
2732 node-version : 24
2833
29- - uses : actions/setup-python@v5
34+ - uses : actions/setup-python@v6
3035 with :
3136 python-version : ' 3.12'
3237
@@ -51,10 +56,26 @@ jobs:
5156 - name : Seed test data into FalkorDB
5257 run : uv run python e2e/seed_test_data.py
5358
54- - name : Install Playwright
59+ - name : Install Playwright npm dependencies
5560 run : |
5661 npm ci
57- npx playwright install --with-deps
62+
63+ - name : Cache Playwright browsers
64+ id : playwright-cache
65+ uses : actions/cache@v4
66+ with :
67+ path : ~/.cache/ms-playwright
68+ key : playwright-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('package-lock.json') }}
69+
70+ - name : Install Playwright browsers
71+ if : steps.playwright-cache.outputs.cache-hit != 'true'
72+ run : npx playwright install --with-deps chromium firefox
73+
74+ - name : Install Playwright system deps
75+ if : steps.playwright-cache.outputs.cache-hit == 'true'
76+ run : |
77+ npx playwright install chromium firefox
78+ npx playwright install-deps chromium firefox
5879
5980 - name : Run Playwright tests
6081 env :
7495 mkdir -p playwright-report
7596 mkdir -p playwright-report/artifacts
7697
77- - uses : actions/upload-artifact@v4
98+ - uses : actions/upload-artifact@v7
7899 if : always()
79100 with :
80101 name : playwright-report-shard-${{ matrix.shard }}
83104
84105 - name : Upload failed test screenshots
85106 if : always()
86- uses : actions/upload-artifact@v4
107+ uses : actions/upload-artifact@v7
87108 with :
88109 name : failed-test-screenshots-shard-${{ matrix.shard }}
89110 path : playwright-report/artifacts/
0 commit comments