Skip to content

ci(release): verify CHANGELOG entry on release + fix Release EQL badge#235

Merged
coderdan merged 1 commit into
mainfrom
ci/release-changelog-check
May 21, 2026
Merged

ci(release): verify CHANGELOG entry on release + fix Release EQL badge#235
coderdan merged 1 commit into
mainfrom
ci/release-changelog-check

Conversation

@coderdan

Copy link
Copy Markdown
Contributor

What

Two release-workflow hygiene fixes:

  1. verify-changelog job in release-eql.yml — fails the Release EQL run when CHANGELOG.md at the tagged commit has no ## [<version>] section.
  2. README badge fix — the Release EQL badge tracked ?branch=main; switched to ?event=release.

Why — the consistency check

eql-2.3.1 was published without first promoting CHANGELOG.md [Unreleased][2.3.1] (the "Cutting a release" step in CLAUDE.md). Nothing flagged it. This job is a detective control: on every non-prerelease eql-* release it checks out the tagged commit and greps for ^## \[<version>\]. If it's missing, the release run goes red with an actionable error.

  • Independent job — it does not gate build-and-publish / publish-docs. The release is already published by the time the workflow runs, so blocking artifacts would only make things worse; instead the workflow goes red so the omission is visible and gets followed up.
  • Skips pre-releases (github.event.release.prerelease == false) — eql-2.3.0-pre.N etc. keep their entries under [Unreleased] until the final cut, so they have no version section by design.

This is the detective option discussed; a fully preventive setup (release-please-style PR-driven releases + a tag ruleset) is a larger change and out of scope here.

Why — the badge

The badge URL had ?branch=main, but the Release EQL workflow effectively never runs on main — it runs on release tag events (head_branch = the tag, e.g. eql-2.3.1). Only two runs in history were on main, the most recent a cancelled workflow_dispatch from 2025-11-26 — which GitHub renders as a red "failing" badge. Every actual release (2.3.0, 2.3.1, all pre-releases) succeeded. ?event=release makes the badge reflect the latest release run (currently eql-2.3.1 — passing).

Note

This PR touches .github/workflows/release-eql.yml, so the workflow's pull_request trigger will run it here. verify-changelog is gated on github.event_name == 'release', so it is skipped on this PR run — that's expected.

Add a verify-changelog job to the Release EQL workflow that fails the
release run when CHANGELOG.md (at the tagged commit) has no
`## [<version>]` section — i.e. the release was cut without first
promoting [Unreleased]. This is what happened with eql-2.3.1. Skips
pre-releases, which keep entries under [Unreleased] until the final cut.

It's an independent job: artifact build/publish still proceed (the
release is already published by then), but the workflow goes red so the
omission is visible.

Also fix the README Release EQL badge: it tracked `?branch=main`, but
the workflow effectively never runs on main (it runs on `release` tag
events). The last main run was a cancelled workflow_dispatch from
2025-11-26, so the badge showed "failing" despite every release
succeeding. Switch to `?event=release`.
@coderabbitai

coderabbitai Bot commented May 21, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@coderdan has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 50 minutes and 1 second before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: e0e8d684-f99c-403b-a786-44cf083d9524

📥 Commits

Reviewing files that changed from the base of the PR and between 7ba11a8 and 997c6a2.

📒 Files selected for processing (2)
  • .github/workflows/release-eql.yml
  • README.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/release-changelog-check

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderdan coderdan merged commit 84f8cc8 into main May 21, 2026
4 checks passed
@coderdan coderdan deleted the ci/release-changelog-check branch May 21, 2026 08:18
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.

2 participants