Skip to content

ci: release setup-cli when its default mergify-cli version changes - #25

Merged
mergify[bot] merged 1 commit into
mainfrom
devs/sileht/mrgfy-11553-setup-cli-auto-release/release-setup-cli-default-mergify-cli-version--13deb113
Nov 3, 2026
Merged

mergify[bot] merged 1 commit into
mainfrom
devs/sileht/mrgfy-11553-setup-cli-auto-release/release-setup-cli-default-mergify-cli-version--13deb113

Conversation

@sileht

@sileht sileht commented Nov 3, 2026

Copy link
Copy Markdown
Member

Renovate bumps the default mergify-cli version in action.yml and the
dependencies queue merges it, but nobody tagged a release afterwards:
main moved to 2026.10.8 on 2026-10-27 while the newest release, v1.3.0,
still installs 2026.7.21.1, and gha-mergify-ci, which pins a setup-cli
release, kept the old CLI.

Every push to main now compares the default version in action.yml with
the one in the latest vX.Y.Z release. When they differ, it releases the
next minor (v1.4.0 after v1.3.0, the bump v1.2.0 and v1.3.0 used for
their CLI updates) at the pushed commit. The notes open with the CLI
version and continue with GitHub's generated ones. Comparing with the
release rather than with the push's own diff lets the next push catch up
a run that failed.

It refuses, and fails the run, when a commit since the latest release is
marked breaking (type!: or BREAKING CHANGE:), since that needs a new
major cut by hand, and when the tag already exists without a published
release, since the API would publish on that tag's commit.

A release created with GITHUB_TOKEN triggers no workflow, so the major
tag move now runs in the same job, on every run: push, release and
dispatch. It already picks the newest release of the major, and now
skips when the tag is already there, so a move that failed or was
skipped is repaired by the next push.

Merging this is itself a push to main: it releases v1.4.0 with
mergify-cli 2026.10.8 at its merge commit, unless v1.4.0 was cut by hand
first, and moves v1 from v1.3.0 to it.

workflow_dispatch without a tag moves the newest release's major tag and
dry-runs the release check on the dispatched ref: it prints the full
notes a push there would publish, and creates nothing.

Fixes MRGFY-11553

Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com

Renovate bumps the default mergify-cli version in action.yml and the
dependencies queue merges it, but nobody tagged a release afterwards:
main moved to 2026.10.8 on 2026-10-27 while the newest release, v1.3.0,
still installs 2026.7.21.1, and gha-mergify-ci, which pins a setup-cli
release, kept the old CLI.

Every push to main now compares the default version in action.yml with
the one in the latest vX.Y.Z release. When they differ, it releases the
next minor (v1.4.0 after v1.3.0, the bump v1.2.0 and v1.3.0 used for
their CLI updates) at the pushed commit. The notes open with the CLI
version and continue with GitHub's generated ones. Comparing with the
release rather than with the push's own diff lets the next push catch up
a run that failed.

It refuses, and fails the run, when a commit since the latest release is
marked breaking (`type!:` or `BREAKING CHANGE:`), since that needs a new
major cut by hand, and when the tag already exists without a published
release, since the API would publish on that tag's commit.

A release created with GITHUB_TOKEN triggers no workflow, so the major
tag move now runs in the same job, on every run: push, release and
dispatch. It already picks the newest release of the major, and now
skips when the tag is already there, so a move that failed or was
skipped is repaired by the next push.

Merging this is itself a push to main: it releases v1.4.0 with
mergify-cli 2026.10.8 at its merge commit, unless v1.4.0 was cut by hand
first, and moves v1 from v1.3.0 to it.

workflow_dispatch without a tag moves the newest release's major tag and
dry-runs the release check on the dispatched ref: it prints the full
notes a push there would publish, and creates nothing.

Fixes MRGFY-11553

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Change-Id: I13deb11322db2b37c9fe7fe945b780967377005a
@mergify
mergify Bot deployed to Mergify Merge Protections November 3, 2026 18:18 Active
@mergify

mergify Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Merge Protections

🟢 All 6 merge protections satisfied — ready to merge.

Show 6 satisfied protections

🟢 🤖 Continuous Integration

  • all of:
    • check-success=all-greens

🟢 👀 Review Requirements

  • any of:
    • #approved-reviews-by>=1
    • author = dependabot[bot]
    • author = mergify-ci-bot
    • author = renovate[bot]

🟢 Enforce conventional commit

Make sure that we follow https://www.conventionalcommits.org/en/v1.0.0/

  • title ~= ^(fix|feat|internal|docs|style|refactor|perf|test|build|ci|chore|revert|ui)(?:\(.+\))?!?:

🟢 🔎 Reviews

  • #changes-requested-reviews-by = 0
  • #review-requested = 0
  • #review-threads-unresolved = 0

🟢 📕 PR description

  • body ~= (?ms:.{48,})

🟢 🚦 Auto-queue

When all merge protections are satisfied, this pull request will be queued automatically.

@mergify
mergify Bot requested a review from a team November 3, 2026 18:19
@sileht
sileht marked this pull request as ready for review November 3, 2026 22:15
@mergify
mergify Bot requested a review from a team November 3, 2026 22:18
@mergify mergify Bot added queued and removed queued labels Nov 3, 2026
@mergify
mergify Bot merged commit 7816afe into main Nov 3, 2026
9 checks passed
@mergify

mergify Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

✅ Merged into main as 7816afe at 22:41 UTC

1 min in the queue, less than a minute of it CI.

So far

  • ✅ Entered the queue Tue 3 Nov, 22:41 · rule default · triggered by merge protections
  • ✅ Checks skipped · PR is already up-to-date
  • ✅ Merged 22:41 · 7816afe · squash
7 merge conditions met
  • title ~= ^(fix|feat|internal|docs|style|refactor|perf|test|build|ci|chore|revert|ui)(?:\(.+\))?!?: · required by Merge Protections rule Enforce conventional commit
  • any of · required by Merge Protections rule 👀 Review Requirements:
    • #approved-reviews-by>=1
    • author = dependabot[bot]
    • author = mergify-ci-bot
    • author = renovate[bot]
  • body ~= (?ms:.{48,}) · required by Merge Protections rule 📕 PR description
  • #changes-requested-reviews-by = 0 · required by Merge Protections rule 🔎 Reviews
  • #review-requested = 0 · required by Merge Protections rule 🔎 Reviews
  • #review-threads-unresolved = 0 · required by Merge Protections rule 🔎 Reviews
  • check-success=all-greens · required by Merge Protections rule 🤖 Continuous Integration

Times in UTC · dashboard · how the merge queue works

1 similar comment
@mergify

mergify Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

✅ Merged into main as 7816afe at 22:41 UTC

1 min in the queue, less than a minute of it CI.

So far

  • ✅ Entered the queue Tue 3 Nov, 22:41 · rule default · triggered by merge protections
  • ✅ Checks skipped · PR is already up-to-date
  • ✅ Merged 22:41 · 7816afe · squash
7 merge conditions met
  • title ~= ^(fix|feat|internal|docs|style|refactor|perf|test|build|ci|chore|revert|ui)(?:\(.+\))?!?: · required by Merge Protections rule Enforce conventional commit
  • any of · required by Merge Protections rule 👀 Review Requirements:
    • #approved-reviews-by>=1
    • author = dependabot[bot]
    • author = mergify-ci-bot
    • author = renovate[bot]
  • body ~= (?ms:.{48,}) · required by Merge Protections rule 📕 PR description
  • #changes-requested-reviews-by = 0 · required by Merge Protections rule 🔎 Reviews
  • #review-requested = 0 · required by Merge Protections rule 🔎 Reviews
  • #review-threads-unresolved = 0 · required by Merge Protections rule 🔎 Reviews
  • check-success=all-greens · required by Merge Protections rule 🤖 Continuous Integration

Times in UTC · dashboard · how the merge queue works

@mergify
mergify Bot deleted the devs/sileht/mrgfy-11553-setup-cli-auto-release/release-setup-cli-default-mergify-cli-version--13deb113 branch November 3, 2026 22:42
@mergify mergify Bot added queued and removed queued labels Nov 3, 2026
mergify Bot pushed a commit that referenced this pull request Nov 5, 2026
The push run of #25 released
v1.4.0 and then left v1 on v1.3.0: the major-tag step listed the
releases right after creating v1.4.0, the list did not show it yet, and
the step logged "v1 already points at v1.3.0". Every
`Mergifyio/setup-cli@v1` user stayed on the old default mergify-cli.

This is not a rare race. On a throwaway repository, the releases list
missed a release created just before in 24 of 25 tries, and took 0.6 to
1.8 s to show it, while refs/tags/<tag> resolved to the right commit
25 times out of 25.

The step now counts the release its run cut, or the published release
that triggered it, on its own before picking the newest, whatever the
list returns. A patch on an older minor still never moves the tag
backwards, and a dispatched tag still only picks the major. The commit
is resolved from refs/tags/<tag>, so a branch with the same name cannot
be picked.

Merging this is a push to main, so its run points v1 at v1.4.0 if v1 is
still on v1.3.0 by then.

Fixes MRGFY-11553

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Approved-by: jd <2644+jd@users.noreply.github.com>

This branch was successfully deployed

1 active deployment
Mergify Merge Protections — b6125d41 Deployed Nov 3, 2026 by mergify[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants