# The web pages' screenshots, compared with the base's (harness/shots/ # compare.mjs, run by harness/shots/linux.sh): the pages whose HTML differs # are shot as the base draws them and as the change does, in the same # browser in the same run, and must match to the pixel. Each that does not, # or is new, is among this check's outputs as pictures: what it was, what # it is, and where they differ, as WebP (harness/shots/outputs.mjs, with # sharp from the harness's packages). It fails unless the change names it: # a pull that moves pages on purpose says which on a line of its body, # `Shots-moved: home, pull-open` (or `all`), and runs its checks again. # # Playwright's own image, of the version the harness uses. Node and the # packages are kept between runs. image: mcr.microsoft.com/playwright:v1.58.2-noble # Every push to main, and pulls into it or a feature/ branch, at their # heads merged with their base, that change what the screenshots are # made of: the pages, the harness that takes them and its packages # (linux.sh and the answers the pages show, all under harness/shots), # and this file. A pull changing none passes at once, # noted as skipped. on: push: {refs: [refs/heads/main]} pull: base: [refs/heads/main, refs/heads/feature/*] paths: [web/**, lexicons/**, harness/shots/**, harness/package.json, harness/package-lock.json, .knotless/workflows/shots.yml] cache: [/opt/node, web/node_modules, harness/node_modules] steps: - name: shots run: bash harness/shots/linux.sh