---
ci:
  assert:
    preset: lighthouse:recommended
    assertions:
      performance-budget: "error"
      render-blocking-resources:
        - warn
        # the CSS file.
        # My site doesn't use JS so it doesn't use the recommended async hack
        - maxLength: 1
      timing-budget: "off"  # buggy; manually use the below assertions instead
      # https://seirdy.one/2020/11/23/website-best-practices.html#about-lazy-loading
      speed-index:
        - warn
        - maxNumericValue: 2000
      largest-contentful-paint:
        - warn
        - maxNumericValue: 2000
      first-contentful-paint:
        - warn
        - maxNumericValue: 2000
      first-meaningful-paint:
        - warn
        - maxNumericValue: 2000
      total-blocking-time:
        - warn
        - maxNumericValue: 0
      cumulative-layout-shift:
        - warn
        - maxNumericValue: 0
      canonical: "off"  # staging site has no rel=canonical
      service-worker: "off"  # not a PWA
      works-offline: "off"  # not a PWA
      installable-manifest: "off"  # not a PWA
      splash-screen: "off"  # not a PWA
      themed-omnibox: "off"  # not a PWA
      offline-start-url: "off"  # not a pwa
      offscreen-images: "off"  # antipattern: see my article on best practices for textual websites
  collect:
    method: node
    settings:
      budgetPath: budget.json
      chromeFlags: "--disable-gpu --no-sandbox --disable-extensions --no-first-run --headless"
      skipAudits:
        - canonical
        - service-worker
        - works-offline
        - installable-manifest
        - splash-screen
        - themed-omnibox
        - offline-start-url
        - offscreen-images
      throttling:
        cpuSlowdownMultiplier: 1
      throttlingMethod: devtools
    url:
      - https://seirdy.one/
      - https://seirdy.one/about.html
      - https://seirdy.one/2020/11/23/website-best-practices.html
    numberOfRuns: 3
  upload:
    outputDir: lighthouse-reports
    reportFilenamePattern: lighthouse-report-%%PATHNAME%%.%%EXTENSION%%
    target: filesystem