Skip to content

ci: bump actions/upload-pages-artifact from 3 to 5 #392

ci: bump actions/upload-pages-artifact from 3 to 5

ci: bump actions/upload-pages-artifact from 3 to 5 #392

Triggered via pull request August 3, 2026 15:34
Status Failure
Total duration 5m 31s
Artifacts

ci-performance.yml

on: pull_request
Backend — lint, typecheck, test
39s
Backend — lint, typecheck, test
Frontend — build, lint, test
5m 21s
Frontend — build, lint, test
Contracts — fmt, clippy, test, build WASM
7s
Contracts — fmt, clippy, test, build WASM
Fit to window
Zoom out
Zoom in

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