From 68b9fbb5d2405b60b0eab3463d2006fab1f66397 Mon Sep 17 00:00:00 2001 From: "Solace (Mark) Brannan" Date: Tue, 15 Sep 2026 10:05:08 -0700 Subject: [PATCH 1/4] Add non-empty-diff check Co-Authored-By: Solace (Mark) --- .github/workflows/nonempty-diff.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .github/workflows/nonempty-diff.yml diff --git a/.github/workflows/nonempty-diff.yml b/.github/workflows/nonempty-diff.yml new file mode 100644 index 0000000..273ede5 --- /dev/null +++ b/.github/workflows/nonempty-diff.yml @@ -0,0 +1,7 @@ +name: Non-empty diff + +on: pull_request + +jobs: + nonempty: + uses: mark-brannan/.github/.github/workflows/nonempty-diff.yml@main From 5ca70f04c3fcf221acc788623f2d2b181ac4cd4f Mon Sep 17 00:00:00 2001 From: "Solace (Mark) Brannan" Date: Mon, 14 Sep 2026 10:46:05 -0700 Subject: [PATCH 2/4] ci: run nonempty-diff as a ci-gate dependency, not a standalone workflow One fewer workflow file, and no per-repo ruleset entry: the gate already requires every job in its needs. Co-Authored-By: Claude Fable 5.1 --- .github/workflows/nonempty-diff.yml | 7 ------- .github/workflows/test.yml | 8 +++++++- 2 files changed, 7 insertions(+), 8 deletions(-) delete mode 100644 .github/workflows/nonempty-diff.yml diff --git a/.github/workflows/nonempty-diff.yml b/.github/workflows/nonempty-diff.yml deleted file mode 100644 index 273ede5..0000000 --- a/.github/workflows/nonempty-diff.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: Non-empty diff - -on: pull_request - -jobs: - nonempty: - uses: mark-brannan/.github/.github/workflows/nonempty-diff.yml@main diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0ad1449..4db5f43 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,6 +23,12 @@ jobs: - run: npm ci - run: npm test + # Refuses to call an empty PR green: a branch whose tree equals its base at + # the merge base (a stray commit reverted it) merges cleanly and lands + # nothing. Listed in ci-gate's needs, so it needs no ruleset entry. + nonempty: + uses: mark-brannan/.github/.github/workflows/nonempty-diff.yml@main + # The single required status check, shared across repositories: the # `gate` job of mark-brannan/.github's reusable ci-gate workflow, which fails # unless every result in `needs` is green. The reported context is @@ -32,7 +38,7 @@ jobs: # evaluate when a dependency failed or was skipped, so it reports an explicit # pass or fail of its own rather than inheriting the skip. ci-gate: - needs: [test] + needs: [test, nonempty] if: always() # It reads nothing and writes nothing; the results go in as an input. permissions: {} From 98ffc82032f59f744fb48e212094eaf550659bf8 Mon Sep 17 00:00:00 2001 From: "Solace (Mark) Brannan" Date: Mon, 14 Sep 2026 11:56:22 -0700 Subject: [PATCH 3/4] nonempty-diff: pin the reusable workflow call to a SHA Pins mark-brannan/.github/.github/workflows/nonempty-diff.yml to 7b15aea59f53dcb5762a091f585b3d83d6dad545 (mark-brannan/.github#25's merged commit) instead of the mutable @main ref. Co-Authored-By: Claude Sonnet 5 --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4db5f43..2684135 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -27,7 +27,7 @@ jobs: # the merge base (a stray commit reverted it) merges cleanly and lands # nothing. Listed in ci-gate's needs, so it needs no ruleset entry. nonempty: - uses: mark-brannan/.github/.github/workflows/nonempty-diff.yml@main + uses: mark-brannan/.github/.github/workflows/nonempty-diff.yml@7b15aea59f53dcb5762a091f585b3d83d6dad545 # The single required status check, shared across repositories: the # `gate` job of mark-brannan/.github's reusable ci-gate workflow, which fails From 126bcf512816233b28ee9566d3bf5447e5d1958f Mon Sep 17 00:00:00 2001 From: "Solace (Mark) Brannan" Date: Mon, 14 Sep 2026 14:01:24 -0700 Subject: [PATCH 4/4] ci(nonempty): call the shared workflow at the tip of main The SHA pin was a workaround for mark-brannan/.github#25 being unmerged; it merged at 2026-09-14T18:10:34Z, so the workaround's reason is gone. Our own reusable workflows are called at the tip of main so one copy stays the one copy to fix -- rule added in mark-brannan/dotfiles#225. Co-Authored-By: Claude Opus 5 --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2684135..4db5f43 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -27,7 +27,7 @@ jobs: # the merge base (a stray commit reverted it) merges cleanly and lands # nothing. Listed in ci-gate's needs, so it needs no ruleset entry. nonempty: - uses: mark-brannan/.github/.github/workflows/nonempty-diff.yml@7b15aea59f53dcb5762a091f585b3d83d6dad545 + uses: mark-brannan/.github/.github/workflows/nonempty-diff.yml@main # The single required status check, shared across repositories: the # `gate` job of mark-brannan/.github's reusable ci-gate workflow, which fails