@@ -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,66 @@ jobs:
3031 with :
3132 node-version : lts/*
3233
33- - uses : pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c
34- name : Install pnpm
34+ - uses : pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c # 1e1c8eafbd745f64b1ef30a7d7ed7965034c486c
35+ name : 🟧 Install pnpm
3536 # pnpm cache skipped deliberately as the project is not actually installed here
3637
3738 - name : 🔠 Lint project
3839 run : node scripts/lint.ts
3940
41+ types :
42+ name : 💪 Type check
43+ runs-on : ubuntu-24.04-arm
44+
45+ steps :
46+ - uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
47+
48+ - uses : actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
49+ with :
50+ node-version : lts/*
51+
52+ - uses : pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c # 1e1c8eafbd745f64b1ef30a7d7ed7965034c486c
53+ name : 🟧 Install pnpm
54+ with :
55+ cache : true
56+
57+ - name : 📦 Install dependencies
58+ run : pnpm install
59+
60+ - name : 💪 Type check
61+ run : pnpm test:types
62+
63+ unit :
64+ name : 🧪 Unit tests
65+ runs-on : ubuntu-24.04-arm
66+
67+ steps :
68+ - uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
69+
70+ - uses : actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
71+ with :
72+ node-version : lts/*
73+
74+ - uses : pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c # 1e1c8eafbd745f64b1ef30a7d7ed7965034c486c
75+ name : 🟧 Install pnpm
76+ with :
77+ cache : true
78+
79+ - name : 📦 Install dependencies
80+ run : pnpm install
81+
82+ - name : 🧪 Unit tests
83+ run : pnpm test:unit run --coverage --reporter=junit --outputFile=test-report.junit.xml
84+
85+ - name : ⬆︎ Upload test results to Codecov
86+ if : ${{ !cancelled() }}
87+ uses : codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1
88+ with :
89+ token : ${{ secrets.CODECOV_TOKEN }}
90+
4091 test :
41- runs-on : ubuntu-latest
92+ name : 🧪 Component tests
93+ runs-on : ubuntu-24.04-arm
4294
4395 steps :
4496 - uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
4799 with :
48100 node-version : lts/*
49101
50- - uses : pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c
51- name : Install pnpm
102+ - uses : pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c # 1e1c8eafbd745f64b1ef30a7d7ed7965034c486c
103+ name : 🟧 Install pnpm
52104 with :
53105 cache : true
54106
@@ -58,19 +110,23 @@ jobs:
58110 - name : 🌐 Install browser
59111 run : pnpm playwright install chromium-headless-shell
60112
61- - name : 💪 Type check
62- run : pnpm test:types
113+ - name : 🧪 Component tests
114+ run : pnpm test:nuxt run --coverage --reporter=junit --outputFile=test-report.junit.xml
63115
64- - name : 🧪 Unit and component tests
65- run : pnpm vite test run --coverage
116+ - name : ⬆︎ Upload test results to Codecov
117+ if : ${{ !cancelled() }}
118+ uses : codecov/test-results-action@0fa95f0e1eeaafde2c782583b36b28ad0d8c77d3 # v1
119+ with :
120+ token : ${{ secrets.CODECOV_TOKEN }}
66121
67- - name : Upload coverage reports to Codecov
122+ - name : ⬆︎ Upload coverage reports to Codecov
68123 uses : codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5
69124 env :
70- CODECOV_TOKEN : 17b4bed9-d407-4ce2-9c10-2ccd4328a1d9
125+ CODECOV_TOKEN : ${{ secrets.CODECOV_TOKEN }}
71126
72127 browser :
73- runs-on : ubuntu-latest
128+ name : 🖥️ Browser tests
129+ runs-on : ubuntu-24.04-arm
74130 container :
75131 image : mcr.microsoft.com/playwright:v1.58.0-noble
76132
81137 with :
82138 node-version : lts/*
83139
84- - uses : pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c
85- name : Install pnpm
140+ - uses : pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c # 1e1c8eafbd745f64b1ef30a7d7ed7965034c486c
141+ name : 🟧 Install pnpm
86142 with :
87143 cache : true
88144
96152 run : pnpm test:browser:prebuilt
97153
98154 a11y :
99- runs-on : ubuntu-latest
155+ name : ♿ Accessibility audit
156+ runs-on : ubuntu-latest # See https://github.com/GoogleChrome/lighthouse/discussions/16834
100157 strategy :
101158 matrix :
102159 mode : [dark, light]
@@ -108,16 +165,16 @@ jobs:
108165 with :
109166 node-version : lts/*
110167
111- - uses : pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c
112- name : Install pnpm
168+ - uses : pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c # 1e1c8eafbd745f64b1ef30a7d7ed7965034c486c
169+ name : 🟧 Install pnpm
113170 with :
114171 cache : true
115172
116173 - name : 📦 Install dependencies
117174 run : pnpm install
118175
119176 - name : 🏗️ Build project
120- run : pnpm build
177+ run : NODE_ENV=test pnpm build
121178
122179 - name : ♿ Accessibility audit (Lighthouse - ${{ matrix.mode }} mode)
123180 run : ./scripts/lighthouse-a11y.sh
@@ -126,7 +183,8 @@ jobs:
126183 LIGHTHOUSE_COLOR_MODE : ${{ matrix.mode }}
127184
128185 knip :
129- runs-on : ubuntu-latest
186+ name : 🧹 Unused code check
187+ runs-on : ubuntu-24.04-arm
130188
131189 steps :
132190 - uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
@@ -135,13 +193,16 @@ jobs:
135193 with :
136194 node-version : lts/*
137195
138- - uses : pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c
139- name : Install pnpm
196+ - uses : pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c # 1e1c8eafbd745f64b1ef30a7d7ed7965034c486c
197+ name : 🟧 Install pnpm
140198 with :
141199 cache : true
142200
143201 - name : 📦 Install dependencies
144202 run : pnpm install
145203
146- - name : 🔍 Check for unused code
204+ - name : 🧹 Check for unused code
147205 run : pnpm knip
206+
207+ - name : 🧹 Check for unused production code
208+ run : pnpm knip --production
0 commit comments