chore(ci): drop auto screenshot refresh job, switch to manual capture (#884)

The release-only `update-screenshots` job opened a `chore/refresh-screenshots`
PR and immediately tried to squash-merge it. Branch protection (1 review,
6 status checks) rejected the merge on every release, leaving an open PR
behind. Screenshots will instead be refreshed manually after UI changes.

Removed:
- The `update-screenshots` job from ci.yml (~57 lines).
- The `paths-ignore: docs/images/**` push trigger filter; its sole purpose
  was to break the auto-merge re-trigger cascade. Its absence also fixes a
  latent bug where docs-only pushes to main would have skipped sync-docs.
- Four `head_ref != 'chore/refresh-screenshots'` guards in other jobs.
- The "doc screenshots" mention in the skip-bot-PRs comment.

Reworked the screenshot capture spec to be opt-in:
- playwright.config.ts now defines two projects. The default `chromium`
  project ignores screenshots.spec.ts; a separate `screenshots` project
  matches it and is invoked manually.
- The e2e CI job runs `--project=chromium` so the screenshots project
  cannot accidentally run in CI.
- Updated the spec's module comment with the new manual invocation.

Net: 86 lines removed, 27 added.
This commit is contained in:
Anso
2026-05-02 15:57:45 -04:00
committed by GitHub
parent 87abfc2ec0
commit 1115650e78
4 changed files with 30 additions and 86 deletions
+5 -4
View File
@@ -2,10 +2,11 @@
* Docs screenshot capture.
*
* Takes canonical screenshots of key UI views and writes them to docs/images/.
* Run via: npx playwright test e2e/screenshots.spec.ts
*
* The CI `update-screenshots` job runs this on every push to develop and
* commits any changed images back to the repo so sync-docs picks them up.
* Run manually after a UI change that affects a documented view:
* npx playwright test --project=screenshots
* Then review the diff under docs/images/ and commit on a chore branch.
* The default `playwright test` invocation skips this spec via the
* project-level testIgnore in playwright.config.ts.
*/
import * as fs from 'fs';
import * as path from 'path';