From 3647a225aaada2ad678df4e4ab6a1399a9574fe8 Mon Sep 17 00:00:00 2001 From: mijinummi Date: Mon, 29 Jun 2026 17:10:52 +0100 Subject: [PATCH 1/3] devops: execute automated axe-core accessibility check on PR pipeline (#529) --- tests/accessibility.spec.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/accessibility.spec.ts diff --git a/tests/accessibility.spec.ts b/tests/accessibility.spec.ts new file mode 100644 index 00000000..79b68cca --- /dev/null +++ b/tests/accessibility.spec.ts @@ -0,0 +1,17 @@ +import { test, expect } from '@playwright/test'; +import AxeBuilder from '@axe-core/playwright'; + +test.describe('Accessibility Quality Gate Matrix', () => { + test('should pass standard automated a11y checking algorithms without strict violations', async ({ page }) => { + // Navigate to a critical landing view route + await page.goto('/'); + + // Scan page elements using WCAG 2.1 AA benchmarks + const accessibilityScanResults = await new AxeBuilder({ page }) + .withTags(['wcag2a', 'wcag2aa']) + .analyze(); + + // Task Requirement: Verify zero violations to avoid regression failures + expect(accessibilityScanResults.violations).toEqual([]); + }); +}); \ No newline at end of file From 860cc85102b9ceed47bac262f809ae461f83afe3 Mon Sep 17 00:00:00 2001 From: mijinummi Date: Mon, 29 Jun 2026 17:13:54 +0100 Subject: [PATCH 2/3] devops: integrate Lighthouse CI for Core Web Vitals LCP/CLS budgeting (#530) --- src/lighthouserc.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/lighthouserc.js diff --git a/src/lighthouserc.js b/src/lighthouserc.js new file mode 100644 index 00000000..1b78d64f --- /dev/null +++ b/src/lighthouserc.js @@ -0,0 +1,19 @@ +module.exports = { + ci: { + collect: { + numberOfRuns: 3, + staticDistDir: './frontend/dist', // Points directly to the built bundle output + }, + assert: { + assertions: { + 'categories:performance': ['error', { minScore: 0.90 }], + // Task Requirement: Enforce strict performance budgets for LCP and CLS + 'largest-contentful-paint': ['error', { maxNumericValue: 2500 }], // LCP <= 2.5s (Good threshold) + 'cumulative-layout-shift': ['error', { maxNumericValue: 0.1 }], // CLS <= 0.1 (Good threshold) + }, + }, + upload: { + target: 'temporary-public-storage', // Uploads auditable HTML reports for triage + }, + }, +}; \ No newline at end of file From 3620cdbca38b94e1246c76da383eeecae3315656 Mon Sep 17 00:00:00 2001 From: mijinummi Date: Mon, 29 Jun 2026 17:16:57 +0100 Subject: [PATCH 3/3] devops: implement pull request bundle size diff reporting pipeline (#531) --- src/bundlewatch.config.json | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/bundlewatch.config.json diff --git a/src/bundlewatch.config.json b/src/bundlewatch.config.json new file mode 100644 index 00000000..89eadf29 --- /dev/null +++ b/src/bundlewatch.config.json @@ -0,0 +1,18 @@ +{ + "files": [ + { + "path": "frontend/dist/assets/*.js", + "maxSize": "250 kB", + "compression": "gzip" + }, + { + "path": "frontend/dist/assets/*.css", + "maxSize": "50 kB", + "compression": "gzip" + } + ], + "ci": { + "trackBranches": ["main"], + "githubAccessor": "comment" + } +} \ No newline at end of file