Skip to content

chore(ci): dogfood the chore(release) skip filter#80

Merged
theogravity merged 1 commit into
mainfrom
chore/dogfood-skip-filter
May 4, 2026
Merged

chore(ci): dogfood the chore(release) skip filter#80
theogravity merged 1 commit into
mainfrom
chore/dogfood-skip-filter

Conversation

@theogravity

Copy link
Copy Markdown
Contributor

Summary

monorel's own ci/github/README.md documents a recipe telling downstream consumers to put

if: github.event_name == 'pull_request' || !startsWith(github.event.head_commit.message, 'chore(release):')

on every job that runs go mod tidy or otherwise resolves Go module versions. monorel's own CI didn't follow that recipe.

This PR applies the filter to the three jobs in ci.yml that resolve module versions (test, lint, tidy) and to the e2e job in e2e-gitea.yml. The two PR-only jobs in ci.yml (commit-lint, docs-build) already gate on github.event_name == 'pull_request'; no change needed.

Why now

The race the filter prevents doesn't currently bite monorel because it's a single-module repo and the chore(release) commit doesn't bump go.sum entries. Adding the filter is purely:

  • Free CI minutes saved on chore(release) merges (the diff is CHANGELOG + .changeset/*.md deletion + monorel internal version string; nothing that warrants the full test matrix or the e2e Forgejo container).
  • Demonstrates the recipe in monorel's own setup as a working reference for downstream consumers.
  • Forward-compatible if monorel ever grows sub-modules (e.g., a hypothetical extracted library module someday).

Test plan

  • After merge, the next non-chore(release): push to main triggers a clean CI run (every filtered job runs as before).
  • At the next release-pr merge, the chore(release): commit's CI run shows test, lint, tidy, and e2e jobs as Skipped rather than Pass/Fail. release.yml still runs and tags the release; nothing else changes.

🤖 Generated with Claude Code

monorel's own `ci/github/README.md` documents a recipe under
"Recipes -> Skipping CI on chore(release) commits" telling
downstream consumers to put

    if: github.event_name == 'pull_request' || !startsWith(github.event.head_commit.message, 'chore(release):')

on every job that runs `go mod tidy` or otherwise resolves Go
module versions. monorel's own CI didn't follow that recipe.

Apply the filter to the three jobs in ci.yml that resolve module
versions (test, lint, tidy) and to the e2e job in e2e-gitea.yml.
The two PR-only jobs in ci.yml (commit-lint, docs-build) already
gate on `github.event_name == 'pull_request'`; no change needed.

The race the filter prevents doesn't currently bite monorel
because it's a single-module repo and the chore(release) commit
doesn't bump go.sum entries; the change is purely:

- Free CI minutes saved on chore(release) merges (the diff is
  CHANGELOG + .changeset/*.md deletion + monorel internal version
  string; nothing that warrants the full test matrix).
- Demonstrates the recipe in monorel's own setup as a working
  reference for downstream consumers.
- Forward-compatible if monorel ever grows sub-modules.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@theogravity
theogravity enabled auto-merge (squash) May 4, 2026 09:07
@theogravity
theogravity merged commit a5cdd0c into main May 4, 2026
7 checks passed
@theogravity
theogravity deleted the chore/dogfood-skip-filter branch May 4, 2026 09:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant