Skip to content

ci: run shadercheck in CI #360

Open
Open

Description

@BernardJen

What

npm run shadercheck compiles every screensaver's shaders in headless Chrome and checks the pixels. It is the only gate that catches:

Neither ci.yml nor release.yml runs it. A shader regression merges and releases unless someone runs it locally.

Context

It forces SwiftShader on purpose, so it needs no GPU. That makes it possible on a hosted runner (ubuntu-latest with Chrome, or macos-latest). The CLAUDE.md note on structure baselines applies: they are resolution- and rasteriser-dependent, so CI must render at the same size the baselines were taken at.

Fix

A CI job that runs npm run shadercheck on PRs touching src/renderer/screensavers/**, scripts/shader-check.mjs or the baselines.


Found while reconstructing the Electron app's decisions as ADRs for the egui port (#346, docs/adr/open-questions.md). Line numbers are from main at 787375b (v3.4.1).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions