diff --git a/.gitea/workflows/qa.yml b/.gitea/workflows/qa.yml index a5017cb..9c6dc61 100644 --- a/.gitea/workflows/qa.yml +++ b/.gitea/workflows/qa.yml @@ -66,6 +66,8 @@ jobs: NEXT_PUBLIC_BASE_URL: 'https://testing.mb-grid-solutions.com' GATEKEEPER_PASSWORD: ${{ secrets.GATEKEEPER_PASSWORD || vars.GATEKEEPER_PASSWORD || 'lassmichrein' }} run: pnpm run check:html + - name: 🔍 Install Puppeteer Browser + run: pnpm dlx puppeteer browsers install chrome - name: 🖼️ Asset Scan env: NEXT_PUBLIC_BASE_URL: 'https://testing.mb-grid-solutions.com' @@ -104,8 +106,9 @@ jobs: wget -qO- "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x82BB6851C64F6880" | gpg --dearmor > /etc/apt/keyrings/xtradeb.gpg echo "deb [signed-by=/etc/apt/keyrings/xtradeb.gpg] http://ppa.launchpad.net/xtradeb/apps/ubuntu $CODENAME main" > /etc/apt/sources.list.d/xtradeb-ppa.list printf "Package: *\nPin: release o=LP-PPA-xtradeb-apps\nPin-Priority: 1001\n" > /etc/apt/preferences.d/xtradeb - apt-get update && apt-get install -y --allow-downgrades chromium - ln -sf /usr/bin/chromium /usr/bin/google-chrome + apt-get update || true # Ignore PPA timeout if it happens + apt-get install -y --allow-downgrades chromium-browser || apt-get install -y chromium + ln -sf /usr/bin/chromium-browser /usr/bin/google-chrome || ln -sf /usr/bin/chromium /usr/bin/google-chrome - name: ♿ WCAG Scan continue-on-error: true env: @@ -139,12 +142,13 @@ jobs: run: pnpm install --frozen-lockfile - name: 📦 Depcheck continue-on-error: true - run: pnpm dlx depcheck --ignores="*eslint*,*typescript*,*tailwindcss*,*postcss*,*prettier*,*@types/*,*husky*,*lint-staged*,*@next/*,*@lhci/*,*commitlint*,*cspell*,*rimraf*,*@payloadcms/*,*start-server-and-test*,*html-validate*,*critters*,*dotenv*,*turbo*,autoprefixer,pa11y-ci,pino-pretty" + run: pnpm dlx depcheck --ignores="*eslint*,*typescript*,*tailwindcss*,*postcss*,*prettier*,*@types/*,*husky*,*lint-staged*,*@next/*,*@lhci/*,*commitlint*,*cspell*,*rimraf*,*@payloadcms/*,*start-server-and-test*,*html-validate*,*critters*,*dotenv*,*turbo*,autoprefixer,pa11y-ci,pino-pretty,framer-motion,lucide-react,next-intl,nodemailer,sharp,vitest" - name: 🔗 Lychee Link Check uses: lycheeverse/lychee-action@v2 with: args: --accept 200,204,429 --timeout 15 app/ public/ fail: true + failIfEmpty: false performance: name: 🎭 Lighthouse @@ -178,18 +182,19 @@ jobs: wget -qO- "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x82BB6851C64F6880" | gpg --dearmor > /etc/apt/keyrings/xtradeb.gpg echo "deb [signed-by=/etc/apt/keyrings/xtradeb.gpg] http://ppa.launchpad.net/xtradeb/apps/ubuntu $CODENAME main" > /etc/apt/sources.list.d/xtradeb-ppa.list printf "Package: *\nPin: release o=LP-PPA-xtradeb-apps\nPin-Priority: 1001\n" > /etc/apt/preferences.d/xtradeb - apt-get update && apt-get install -y --allow-downgrades chromium - ln -sf /usr/bin/chromium /usr/bin/google-chrome + apt-get update || true # Ignore PPA timeout if it happens + apt-get install -y --allow-downgrades chromium-browser || apt-get install -y chromium + ln -sf /usr/bin/chromium-browser /usr/bin/google-chrome || ln -sf /usr/bin/chromium /usr/bin/google-chrome - name: 🎭 LHCI Desktop env: LHCI_URL: 'https://testing.mb-grid-solutions.com' GATEKEEPER_PASSWORD: ${{ secrets.GATEKEEPER_PASSWORD || vars.GATEKEEPER_PASSWORD || 'lassmichrein' }} - run: pnpm run pagespeed:test -- --collect.settings.preset=desktop + run: pnpm exec mintel pagespeed test -- --collect.settings.preset=desktop - name: 📱 LHCI Mobile env: LHCI_URL: 'https://testing.mb-grid-solutions.com' GATEKEEPER_PASSWORD: ${{ secrets.GATEKEEPER_PASSWORD || vars.GATEKEEPER_PASSWORD || 'lassmichrein' }} - run: pnpm run pagespeed:test -- --collect.settings.preset=mobile + run: pnpm exec mintel pagespeed test -- --collect.settings.preset=mobile notifications: name: 🔔 Notify diff --git a/scripts/find-empty-anchors.ts b/scripts/find-empty-anchors.ts deleted file mode 100644 index 3474327..0000000 --- a/scripts/find-empty-anchors.ts +++ /dev/null @@ -1,14 +0,0 @@ -import * as cheerio from "cheerio"; -import * as fs from "fs"; - -const file = process.argv[2]; -const html = fs.readFileSync(file, "utf8"); -const $ = cheerio.load(html); - -$("a").each((i, el) => { - const text = $(el).text().trim(); - const label = $(el).attr("aria-label"); - if (!text && !label) { - console.log(`Empty anchor found: ${$(el).toString()}`); - } -});