Skip to content

Commit b101d09

Browse files
authored
Merge pull request #1452 from w3bdesign/1450-google-lighthouse-ci
Install and setup Google Lighthouse CI
2 parents 909aa43 + 432647a commit b101d09

File tree

4 files changed

+5535
-1026
lines changed

4 files changed

+5535
-1026
lines changed

.github/workflows/lighthouse.yml

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
name: Lighthouse CI
2+
on: [push, pull_request]
3+
4+
jobs:
5+
lighthouse:
6+
runs-on: ubuntu-latest
7+
steps:
8+
- uses: actions/checkout@v4
9+
10+
- name: Setup Node.js
11+
uses: actions/setup-node@v4
12+
with:
13+
node-version: '20'
14+
15+
- name: Setup pnpm
16+
uses: pnpm/action-setup@v2
17+
with:
18+
version: 8
19+
run_install: false
20+
21+
- name: Get pnpm store directory
22+
shell: bash
23+
run: |
24+
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
25+
26+
- name: Setup pnpm cache
27+
uses: actions/cache@v4
28+
with:
29+
path: ${{ env.STORE_PATH }}
30+
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
31+
restore-keys: |
32+
${{ runner.os }}-pnpm-store-
33+
34+
- name: Install dependencies
35+
run: pnpm install
36+
37+
- name: Build project
38+
env:
39+
NEXT_PUBLIC_GRAPHQL_URL: "https://swewoocommerce.dfweb.no/graphql"
40+
NEXT_PUBLIC_PLACEHOLDER_SMALL_IMAGE_URL: "https://via.placeholder.com/200"
41+
NEXT_PUBLIC_PLACEHOLDER_LARGE_IMAGE_URL: "https://via.placeholder.com/600"
42+
run: pnpm build
43+
44+
- name: Start server
45+
env:
46+
NEXT_PUBLIC_GRAPHQL_URL: "https://swewoocommerce.dfweb.no/graphql"
47+
NEXT_PUBLIC_PLACEHOLDER_SMALL_IMAGE_URL: "https://via.placeholder.com/200"
48+
NEXT_PUBLIC_PLACEHOLDER_LARGE_IMAGE_URL: "https://via.placeholder.com/600"
49+
run: |
50+
pnpm start &
51+
echo "Waiting for server to be ready..."
52+
while ! nc -z localhost 3000; do
53+
sleep 5
54+
done
55+
# Additional wait to ensure full initialization
56+
sleep 20
57+
58+
- name: Run Lighthouse CI
59+
run: |
60+
pnpm lhci:perf
61+
pnpm lhci:desktop
62+
env:
63+
LHCI_GITHUB_APP_TOKEN: ${{ secrets.GITHUB_TOKEN }}
64+
65+
- name: Stop server
66+
if: always()
67+
run: |
68+
pkill -f "next start" || true

lighthouserc.json

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"ci": {
3+
"collect": {
4+
"numberOfRuns": 1,
5+
"url": [
6+
"http://localhost:3000/",
7+
"http://localhost:3000/produkter",
8+
"http://localhost:3000/kategorier"
9+
],
10+
"port": 3000,
11+
"settings": {
12+
"onlyCategories": [
13+
"performance",
14+
"accessibility",
15+
"best-practices",
16+
"seo"
17+
],
18+
"skipAudits": ["uses-http2"]
19+
}
20+
},
21+
"upload": { "target": "temporary-public-storage" },
22+
"assert": {
23+
"assertions": {
24+
"categories:performance": ["warn", { "minScore": 0.6 }],
25+
"categories:accessibility": ["warn", { "minScore": 0.9 }],
26+
"categories:best-practices": ["warn", { "minScore": 0.9 }],
27+
"categories:seo": ["warn", { "minScore": 0.9 }],
28+
"uses-http2": "off"
29+
}
30+
}
31+
}
32+
}

0 commit comments

Comments
 (0)