
Why we replaced our Puppeteer-based CI screenshot checks with an API call
Why We Replaced Our Puppeteer-Based CI Screenshot Checks with an API Call We had Puppeteer running in our GitHub Actions CI pipeline. It took screenshots of five pages after every deploy, diffed them against baselines, and failed the build if anything changed unexpectedly. In theory: great. In practice: it was the most fragile thing in our entire CI pipeline. What was breaking Puppeteer version drift. Puppeteer bundles Chromium, but the version it bundles changes between minor releases. We'd upgrade a dependency, Puppeteer would download a new Chromium binary, and suddenly our screenshots looked slightly different — different font rendering, different anti-aliasing — causing false failures on diffs that had nothing to do with our UI. Memory. A headless Chrome instance uses about 300MB. We were screenshotting five pages, so 1.5GB of RAM just for the screenshot step. Our ubuntu-latest runners have 7GB total. Fine on its own, but not fine when it ran in parallel with our test suite. Timin
Continue reading on Dev.to JavaScript
Opens in a new tab




