@@ -21,7 +21,8 @@ permissions:
2121
2222jobs :
2323 lint :
24- runs-on : ubuntu-latest
24+ name : 🔠 Lint project
25+ runs-on : ubuntu-24.04-arm
2526
2627 steps :
2728 - uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
@@ -30,15 +31,70 @@ jobs:
3031 with :
3132 node-version : lts/*
3233
33- - uses : pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c
34- name : Install pnpm
35- # pnpm cache skipped deliberately as the project is not actually installed here
34+ - uses : pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c # 1e1c8eafbd745f64b1ef30a7d7ed7965034c486c
35+ name : 🟧 Install pnpm
36+ with :
37+ cache : true
38+
39+ - name : 📦 Install dependencies (root only, no scripts)
40+ run : pnpm install --filter . --ignore-scripts
3641
3742 - name : 🔠 Lint project
38- run : node scripts/lint.ts
43+ run : pnpm lint
44+
45+ types :
46+ name : 💪 Type check
47+ runs-on : ubuntu-24.04-arm
48+
49+ steps :
50+ - uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
51+
52+ - uses : actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
53+ with :
54+ node-version : lts/*
55+
56+ - uses : pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c # 1e1c8eafbd745f64b1ef30a7d7ed7965034c486c
57+ name : 🟧 Install pnpm
58+ with :
59+ cache : true
60+
61+ - name : 📦 Install dependencies
62+ run : pnpm install
63+
64+ - name : 💪 Type check
65+ run : pnpm test:types
66+
67+ unit :
68+ name : 🧪 Unit tests
69+ runs-on : ubuntu-24.04-arm
70+
71+ steps :
72+ - uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
73+
74+ - uses : actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
75+ with :
76+ node-version : lts/*
77+
78+ - uses : pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c # 1e1c8eafbd745f64b1ef30a7d7ed7965034c486c
79+ name : 🟧 Install pnpm
80+ with :
81+ cache : true
82+
83+ - name : 📦 Install dependencies
84+ run : pnpm install
85+
86+ - name : 🧪 Unit tests
87+ run : pnpm test:unit run --coverage --reporter=junit --outputFile=test-report.junit.xml
88+
89+ - name : ⬆︎ Upload test results to Codecov
90+ if : ${{ !cancelled() }}
91+ uses : codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1
92+ with :
93+ token : ${{ secrets.CODECOV_TOKEN }}
3994
4095 test :
41- runs-on : ubuntu-latest
96+ name : 🧪 Component tests
97+ runs-on : ubuntu-24.04-arm
4298
4399 steps :
44100 - uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
47103 with :
48104 node-version : lts/*
49105
50- - uses : pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c
51- name : Install pnpm
106+ - uses : pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c # 1e1c8eafbd745f64b1ef30a7d7ed7965034c486c
107+ name : 🟧 Install pnpm
52108 with :
53109 cache : true
54110
@@ -58,17 +114,23 @@ jobs:
58114 - name : 🌐 Install browser
59115 run : pnpm playwright install chromium-headless-shell
60116
61- - name : 💪 Type check
62- run : pnpm test:types
117+ - name : 🧪 Component tests
118+ run : pnpm test:nuxt run --coverage --reporter=junit --outputFile=test-report.junit.xml
63119
64- - name : 🧪 Unit test
65- run : pnpm test:unit
120+ - name : ⬆︎ Upload test results to Codecov
121+ if : ${{ !cancelled() }}
122+ uses : codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1
123+ with :
124+ token : ${{ secrets.CODECOV_TOKEN }}
66125
67- - name : 🏃 Component tests
68- run : pnpm test:nuxt
126+ - name : ⬆︎ Upload coverage reports to Codecov
127+ uses : codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5
128+ env :
129+ CODECOV_TOKEN : ${{ secrets.CODECOV_TOKEN }}
69130
70131 browser :
71- runs-on : ubuntu-latest
132+ name : 🖥️ Browser tests
133+ runs-on : ubuntu-24.04-arm
72134 container :
73135 image : mcr.microsoft.com/playwright:v1.58.0-noble
74136
@@ -79,19 +141,23 @@ jobs:
79141 with :
80142 node-version : lts/*
81143
82- - uses : pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c
83- name : Install pnpm
144+ - uses : pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c # 1e1c8eafbd745f64b1ef30a7d7ed7965034c486c
145+ name : 🟧 Install pnpm
84146 with :
85147 cache : true
86148
87149 - name : 📦 Install dependencies
88150 run : pnpm install
89151
152+ - name : 🏗️ Build project
153+ run : pnpm build:playwright
154+
90155 - name : 🖥️ Test project (browser)
91- run : pnpm test:browser
156+ run : pnpm test:browser:prebuilt
92157
93158 a11y :
94- runs-on : ubuntu-latest
159+ name : ♿ Accessibility audit
160+ runs-on : ubuntu-latest # See https://github.com/GoogleChrome/lighthouse/discussions/16834
95161 strategy :
96162 matrix :
97163 mode : [dark, light]
@@ -103,16 +169,16 @@ jobs:
103169 with :
104170 node-version : lts/*
105171
106- - uses : pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c
107- name : Install pnpm
172+ - uses : pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c # 1e1c8eafbd745f64b1ef30a7d7ed7965034c486c
173+ name : 🟧 Install pnpm
108174 with :
109175 cache : true
110176
111177 - name : 📦 Install dependencies
112178 run : pnpm install
113179
114180 - name : 🏗️ Build project
115- run : pnpm build
181+ run : NODE_ENV=test pnpm build
116182
117183 - name : ♿ Accessibility audit (Lighthouse - ${{ matrix.mode }} mode)
118184 run : ./scripts/lighthouse-a11y.sh
@@ -121,7 +187,8 @@ jobs:
121187 LIGHTHOUSE_COLOR_MODE : ${{ matrix.mode }}
122188
123189 knip :
124- runs-on : ubuntu-latest
190+ name : 🧹 Unused code check
191+ runs-on : ubuntu-24.04-arm
125192
126193 steps :
127194 - uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
@@ -130,13 +197,16 @@ jobs:
130197 with :
131198 node-version : lts/*
132199
133- - uses : pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c
134- name : Install pnpm
200+ - uses : pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c # 1e1c8eafbd745f64b1ef30a7d7ed7965034c486c
201+ name : 🟧 Install pnpm
135202 with :
136203 cache : true
137204
138205 - name : 📦 Install dependencies
139206 run : pnpm install
140207
141- - name : 🔍 Check for unused code
208+ - name : 🧹 Check for unused code
142209 run : pnpm knip
210+
211+ - name : 🧹 Check for unused production code
212+ run : pnpm knip --production
0 commit comments