ci: bump actions/upload-pages-artifact from 3 to 5 #392
ci-performance.yml
on: pull_request
Backend — lint, typecheck, test
39s
Frontend — build, lint, test
5m 21s
Contracts — fmt, clippy, test, build WASM
7s
Annotations
21 errors, 23 warnings, and 1 notice
|
Contracts — fmt, clippy, test, build WASM
Process completed with exit code 1.
|
|
Backend — lint, typecheck, test
Process completed with exit code 2.
|
|
Backend — lint, typecheck, test
Argument of type '{ headers: { "x-trivela-timestamp": any; "x-trivela-nonce": any; "x-trivela-signature": any; }; rawBody: any; body: {}; }' is not assignable to parameter of type 'Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>'.
|
|
Backend — lint, typecheck, test
Argument of type '{ _status: number; _body: any; status(code: any): ...; json(body: any): ...; }' is not assignable to parameter of type 'Response<any, Record<string, any>, number>'.
|
|
Backend — lint, typecheck, test
Property 'rawBody' does not exist on type '{}'.
|
|
Backend — lint, typecheck, test
Property 'body' does not exist on type '{}'.
|
|
Backend — lint, typecheck, test
Property 'sig' does not exist on type '{}'.
|
|
Backend — lint, typecheck, test
Property 'nonce' does not exist on type '{}'.
|
|
Backend — lint, typecheck, test
Property 'ts' does not exist on type '{}'.
|
|
Backend — lint, typecheck, test
Property 'rawBody' does not exist on type 'Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>'.
|
|
Backend — lint, typecheck, test
Property 'rawBody' does not exist on type 'Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>'.
|
|
[chromium] › tests/e2e/accessibility.spec.ts:232:3 › Accessibility Tests › Headings - proper hierarchy:
frontend/tests/e2e/accessibility.spec.ts#L233
10) [chromium] › tests/e2e/accessibility.spec.ts:232:3 › Accessibility Tests › Headings - proper hierarchy
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/
Call log:
- navigating to "http://localhost:5173/", waiting until "load"
231 |
232 | test('Headings - proper hierarchy', async ({ page }) => {
> 233 | await page.goto(`${FRONTEND_URL}/`);
| ^
234 |
235 | const accessibilityScanResults = await new AxeBuilder({ page })
236 | .withRules(['heading-order'])
at /home/runner/work/Trivela/Trivela/frontend/tests/e2e/accessibility.spec.ts:233:16
|
|
[chromium] › tests/e2e/accessibility.spec.ts:203:3 › Accessibility Tests › ARIA attributes - used correctly:
frontend/tests/e2e/accessibility.spec.ts#L204
9) [chromium] › tests/e2e/accessibility.spec.ts:203:3 › Accessibility Tests › ARIA attributes - used correctly
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/
Call log:
- navigating to "http://localhost:5173/", waiting until "load"
202 |
203 | test('ARIA attributes - used correctly', async ({ page }) => {
> 204 | await page.goto(`${FRONTEND_URL}/`);
| ^
205 |
206 | const accessibilityScanResults = await new AxeBuilder({ page })
207 | .withTags(['best-practice'])
at /home/runner/work/Trivela/Trivela/frontend/tests/e2e/accessibility.spec.ts:204:16
|
|
[chromium] › tests/e2e/accessibility.spec.ts:180:3 › Accessibility Tests › Images - all have alt text:
frontend/tests/e2e/accessibility.spec.ts#L181
8) [chromium] › tests/e2e/accessibility.spec.ts:180:3 › Accessibility Tests › Images - all have alt text
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/
Call log:
- navigating to "http://localhost:5173/", waiting until "load"
179 |
180 | test('Images - all have alt text', async ({ page }) => {
> 181 | await page.goto(`${FRONTEND_URL}/`);
| ^
182 |
183 | const accessibilityScanResults = await new AxeBuilder({ page })
184 | .withRules(['image-alt'])
at /home/runner/work/Trivela/Trivela/frontend/tests/e2e/accessibility.spec.ts:181:16
|
|
[chromium] › tests/e2e/accessibility.spec.ts:152:3 › Accessibility Tests › Color contrast - meets WCAG AA standards:
frontend/tests/e2e/accessibility.spec.ts#L153
7) [chromium] › tests/e2e/accessibility.spec.ts:152:3 › Accessibility Tests › Color contrast - meets WCAG AA standards
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/
Call log:
- navigating to "http://localhost:5173/", waiting until "load"
151 |
152 | test('Color contrast - meets WCAG AA standards', async ({ page }) => {
> 153 | await page.goto(`${FRONTEND_URL}/`);
| ^
154 |
155 | const accessibilityScanResults = await new AxeBuilder({ page })
156 | .withTags(['wcag2aa'])
at /home/runner/work/Trivela/Trivela/frontend/tests/e2e/accessibility.spec.ts:153:16
|
|
[chromium] › tests/e2e/accessibility.spec.ts:124:3 › Accessibility Tests › Keyboard navigation - focus indicators visible:
frontend/tests/e2e/accessibility.spec.ts#L125
6) [chromium] › tests/e2e/accessibility.spec.ts:124:3 › Accessibility Tests › Keyboard navigation - focus indicators visible
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/
Call log:
- navigating to "http://localhost:5173/", waiting until "load"
123 |
124 | test('Keyboard navigation - focus indicators visible', async ({ page }) => {
> 125 | await page.goto(`${FRONTEND_URL}/`);
| ^
126 |
127 | // Press Tab to navigate
128 | await page.keyboard.press('Tab');
at /home/runner/work/Trivela/Trivela/frontend/tests/e2e/accessibility.spec.ts:125:16
|
|
[chromium] › tests/e2e/accessibility.spec.ts:109:3 › Accessibility Tests › Forms and inputs - no critical a11y violations:
frontend/tests/e2e/accessibility.spec.ts#L110
5) [chromium] › tests/e2e/accessibility.spec.ts:109:3 › Accessibility Tests › Forms and inputs - no critical a11y violations
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/
Call log:
- navigating to "http://localhost:5173/", waiting until "load"
108 |
109 | test('Forms and inputs - no critical a11y violations', async ({ page }) => {
> 110 | await page.goto(`${FRONTEND_URL}/`);
| ^
111 |
112 | // Check all form elements
113 | const accessibilityScanResults = await new AxeBuilder({ page })
at /home/runner/work/Trivela/Trivela/frontend/tests/e2e/accessibility.spec.ts:110:16
|
|
[chromium] › tests/e2e/accessibility.spec.ts:95:3 › Accessibility Tests › Navigation and header - no critical a11y violations:
frontend/tests/e2e/accessibility.spec.ts#L96
4) [chromium] › tests/e2e/accessibility.spec.ts:95:3 › Accessibility Tests › Navigation and header - no critical a11y violations
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/
Call log:
- navigating to "http://localhost:5173/", waiting until "load"
94 |
95 | test('Navigation and header - no critical a11y violations', async ({ page }) => {
> 96 | await page.goto(`${FRONTEND_URL}/`);
| ^
97 |
98 | // Check header/nav specifically
99 | const accessibilityScanResults = await new AxeBuilder({ page })
at /home/runner/work/Trivela/Trivela/frontend/tests/e2e/accessibility.spec.ts:96:16
|
|
[chromium] › tests/e2e/accessibility.spec.ts:77:3 › Accessibility Tests › Campaign detail page - no critical a11y violations:
frontend/tests/e2e/accessibility.spec.ts#L79
3) [chromium] › tests/e2e/accessibility.spec.ts:77:3 › Accessibility Tests › Campaign detail page - no critical a11y violations
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/
Call log:
- navigating to "http://localhost:5173/", waiting until "load"
77 | test('Campaign detail page - no critical a11y violations', async ({ page }) => {
78 | // Note: This assumes a campaign exists. In CI, may need to seed data.
> 79 | await page.goto(`${FRONTEND_URL}/`);
| ^
80 | await page.waitForLoadState('networkidle');
81 |
82 | // Try to click first campaign if it exists
at /home/runner/work/Trivela/Trivela/frontend/tests/e2e/accessibility.spec.ts:79:16
|
|
[chromium] › tests/e2e/accessibility.spec.ts:71:3 › Accessibility Tests › Campaign list page - no critical a11y violations:
frontend/tests/e2e/accessibility.spec.ts#L72
2) [chromium] › tests/e2e/accessibility.spec.ts:71:3 › Accessibility Tests › Campaign list page - no critical a11y violations
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/campaigns
Call log:
- navigating to "http://localhost:5173/campaigns", waiting until "load"
70 |
71 | test('Campaign list page - no critical a11y violations', async ({ page }) => {
> 72 | await page.goto(`${FRONTEND_URL}/campaigns`);
| ^
73 | await page.waitForLoadState('networkidle');
74 | await checkA11y(page, 'Campaign List');
75 | });
at /home/runner/work/Trivela/Trivela/frontend/tests/e2e/accessibility.spec.ts:72:16
|
|
[chromium] › tests/e2e/accessibility.spec.ts:65:3 › Accessibility Tests › Homepage - no critical a11y violations:
frontend/tests/e2e/accessibility.spec.ts#L66
1) [chromium] › tests/e2e/accessibility.spec.ts:65:3 › Accessibility Tests › Homepage - no critical a11y violations
Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5173/
Call log:
- navigating to "http://localhost:5173/", waiting until "load"
64 | test.describe('Accessibility Tests', () => {
65 | test('Homepage - no critical a11y violations', async ({ page }) => {
> 66 | await page.goto(`${FRONTEND_URL}/`);
| ^
67 | await page.waitForLoadState('networkidle');
68 | await checkA11y(page, 'Homepage');
69 | });
at /home/runner/work/Trivela/Trivela/frontend/tests/e2e/accessibility.spec.ts:66:16
|
|
Contracts — fmt, clippy, test, build WASM
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Backend — lint, typecheck, test
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Backend — lint, typecheck, test:
backend/src/dal/sqliteCampaignRepository.js#L493
'clonedTags' is assigned a value but never used
|
|
Backend — lint, typecheck, test:
backend/src/dal/sqliteCampaignRepository.js#L491
'clonedImageUrl' is assigned a value but never used
|
|
Backend — lint, typecheck, test:
backend/src/dal/sqliteCampaignRepository.js#L489
'clonedCategory' is assigned a value but never used
|
|
Backend — lint, typecheck, test:
backend/src/dal/sqliteCampaignRepository.js#L2
'Database' is defined but never used
|
|
Backend — lint, typecheck, test:
backend/src/dal/sqliteAuditLogRepository.js#L1
'Database' is defined but never used
|
|
Backend — lint, typecheck, test:
backend/src/dal/sqliteAllowlistRepository.js#L2
'bytesToHex' is defined but never used
|
|
Backend — lint, typecheck, test:
backend/src/dal/pg/pgCampaignRepository.js#L334
'limit' is assigned a value but never used. Allowed unused args must match /^_/u
|
|
Backend — lint, typecheck, test:
backend/src/batchCampaigns.js#L204
'id' is assigned a value but never used
|
|
Backend — lint, typecheck, test:
backend/src/batchCampaigns.js#L40
'batchRateLimiter' is defined but never used
|
|
Backend — lint, typecheck, test:
backend/src/batchCampaigns.js#L28
'requireApiKey' is defined but never used. Allowed unused args must match /^_/u
|
|
Frontend — build, lint, test
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4, actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Frontend — build, lint, test:
frontend/src/components/OnboardingTour.jsx#L122
Fast refresh only works when a file only exports components. Use a new file to share constants or functions between components
|
|
Frontend — build, lint, test:
frontend/src/components/OnboardingTour.jsx#L104
React Hook useEffect has a missing dependency: 'startTour'. Either include it or remove the dependency array
|
|
Frontend — build, lint, test:
frontend/src/components/OnboardingTour.jsx#L98
React Hook useEffect has a missing dependency: 'startTour'. Either include it or remove the dependency array
|
|
Frontend — build, lint, test:
frontend/src/components/MobileWalletConnect.jsx#L77
React Hook useEffect has a missing dependency: 'handleWalletReturn'. Either include it or remove the dependency array
|
|
Frontend — build, lint, test:
frontend/src/components/CampaignFilters.jsx#L112
Fast refresh only works when a file only exports components. Use a new file to share constants or functions between components
|
|
Frontend — build, lint, test:
frontend/src/components/AuditLog.jsx#L77
React Hook useCallback has a missing dependency: 't'. Either include it or remove the dependency array
|
|
Frontend — build, lint, test:
frontend/src/components/AdminControlPanel.jsx#L132
React Hook useEffect has a missing dependency: 'loadCampaignState'. Either include it or remove the dependency array
|
|
Frontend — build, lint, test:
frontend/src/TransactionHistory.jsx#L264
Fast refresh only works when a file only exports components. Use a new file to share constants or functions between components
|
|
Frontend — build, lint, test:
frontend/src/RegisterCampaign.jsx#L176
React Hook useEffect has a missing dependency: 'isRegistered'. Either include it or remove the dependency array
|
|
Frontend — build, lint, test:
frontend/src/AdminCampaigns.jsx#L54
React Hook useEffect has a missing dependency: 'loadCampaigns'. Either include it or remove the dependency array
|
|
🎭 Playwright Run Summary
42 failed
[chromium] › tests/e2e/accessibility.spec.ts:65:3 › Accessibility Tests › Homepage - no critical a11y violations
[chromium] › tests/e2e/accessibility.spec.ts:71:3 › Accessibility Tests › Campaign list page - no critical a11y violations
[chromium] › tests/e2e/accessibility.spec.ts:77:3 › Accessibility Tests › Campaign detail page - no critical a11y violations
[chromium] › tests/e2e/accessibility.spec.ts:95:3 › Accessibility Tests › Navigation and header - no critical a11y violations
[chromium] › tests/e2e/accessibility.spec.ts:109:3 › Accessibility Tests › Forms and inputs - no critical a11y violations
[chromium] › tests/e2e/accessibility.spec.ts:124:3 › Accessibility Tests › Keyboard navigation - focus indicators visible
[chromium] › tests/e2e/accessibility.spec.ts:152:3 › Accessibility Tests › Color contrast - meets WCAG AA standards
[chromium] › tests/e2e/accessibility.spec.ts:180:3 › Accessibility Tests › Images - all have alt text
[chromium] › tests/e2e/accessibility.spec.ts:203:3 › Accessibility Tests › ARIA attributes - used correctly
[chromium] › tests/e2e/accessibility.spec.ts:232:3 › Accessibility Tests › Headings - proper hierarchy
[chromium] › tests/e2e/accessibility.spec.ts:245:3 › Accessibility Tests › Buttons and links - accessible names
[chromium] › tests/e2e/accessibility.spec.ts:268:3 › Mobile Accessibility › Mobile homepage - no critical a11y violations
[chromium] › tests/e2e/accessibility.spec.ts:274:3 › Mobile Accessibility › Mobile navigation - accessible touch targets
[chromium] › tests/e2e/leaderboard.spec.js:98:3 › Campaign Leaderboard page › shows empty state when no participants
[firefox] › tests/e2e/accessibility.spec.ts:65:3 › Accessibility Tests › Homepage - no critical a11y violations
[firefox] › tests/e2e/accessibility.spec.ts:71:3 › Accessibility Tests › Campaign list page - no critical a11y violations
[firefox] › tests/e2e/accessibility.spec.ts:77:3 › Accessibility Tests › Campaign detail page - no critical a11y violations
[firefox] › tests/e2e/accessibility.spec.ts:95:3 › Accessibility Tests › Navigation and header - no critical a11y violations
[firefox] › tests/e2e/accessibility.spec.ts:109:3 › Accessibility Tests › Forms and inputs - no critical a11y violations
[firefox] › tests/e2e/accessibility.spec.ts:124:3 › Accessibility Tests › Keyboard navigation - focus indicators visible
[firefox] › tests/e2e/accessibility.spec.ts:152:3 › Accessibility Tests › Color contrast - meets WCAG AA standards
[firefox] › tests/e2e/accessibility.spec.ts:180:3 › Accessibility Tests › Images - all have alt text
[firefox] › tests/e2e/accessibility.spec.ts:203:3 › Accessibility Tests › ARIA attributes - used correctly
[firefox] › tests/e2e/accessibility.spec.ts:232:3 › Accessibility Tests › Headings - proper hierarchy
[firefox] › tests/e2e/accessibility.spec.ts:245:3 › Accessibility Tests › Buttons and links - accessible names
[firefox] › tests/e2e/accessibility.spec.ts:268:3 › Mobile Accessibility › Mobile homepage - no critical a11y violations
[firefox] › tests/e2e/accessibility.spec.ts:274:3 › Mobile Accessibility › Mobile navigation - accessible touch targets
[firefox] › tests/e2e/leaderboard.spec.js:98:3 › Campaign Leaderboard page › shows empty state when no participants
[webkit] › tests/e2e/accessibility.spec.ts:65:3 › Accessibility Tests › Homepage - no critical a11y violations
[webkit] › tests/e2e/accessibility.spec.ts:71:3 › Accessibility Tests › Campaign list page - no critical a11y violations
[webkit] › tests/e2e/accessibility.spec.ts:77:3 › Accessibility Tests › Campaign detail page - no critical a11y violations
[webkit] › tests/e2e/accessibility.spec.ts:95:3 › Accessibility Tests › Navigation and header - no critical a11y violations
|