From bee32dcdeadfdebdad99afb452b89d5dd8ea57f5 Mon Sep 17 00:00:00 2001 From: Asen Lekov Date: Tue, 25 Aug 2026 22:31:49 +0300 Subject: [PATCH] fix(ci): run Self test on every pull request, not a filtered subset The `paths:` filter listed the directories the checks live in, not the files the checks read. Two of them read more than that. The preset check compares the README runner table against the picker's case block, so the README is an input to a check that the filter never triggered on. A pull request editing only that table could put the two out of agreement with nothing running to notice, which is the exact drift the check exists to catch. A filter is also incompatible with ever making this a required check. A filtered-out pull request produces no check run at all, and a required check that never reports blocks the merge forever. The same trap is already written into react-doctor.yml, where the caller's positive `paths:` filter is the reason that workflow must never be required. So the filter is gone. The run takes about fifteen seconds on a hosted runner, which is not worth optimising against correctness, and the reason is written above the trigger so nobody adds it back as a saving. --- .github/workflows/self-test.yml | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/.github/workflows/self-test.yml b/.github/workflows/self-test.yml index ab1a105..1e68164 100644 --- a/.github/workflows/self-test.yml +++ b/.github/workflows/self-test.yml @@ -4,16 +4,13 @@ # public repo never touches a self-hosted runner. name: Self test +# No `paths:` filter on purpose. The run takes about 15 seconds, and two of the +# checks read files a filter would have to list: the preset check compares the +# README runner table against the picker, so a README-only change can break it. +# A filter also makes this unusable as a required check, since a filtered-out +# pull request produces no check run at all and could never merge. on: pull_request: - paths: - - 'actions/**' - - '.github/workflows/**' - - 'default.json5' - - '.releaserc.json' - - 'renovate.json' - - 'package.json' - - 'package-lock.json' push: branches: [main] workflow_dispatch: