Mirror Stable Tags to Nightly Channel · Entire

can you look at the release logic we have right now, if we do a tagged release the issue is that nightly only gets an update of the same things once nightly regularly runs. Can we do a release on both stable and nightly channel if we do a release through a stable tag?

1w ago·1h 25m·18 calls

Done. Here's what I changed and why.

What I changed

.github/workflows/release.yml — one new job plus two supporting tweaks:

  1. release job now exposes outputs.prerelease (from the existing release-type step).
  2. New mirror-nightly job — runs only after a successful stable release (prerelease == 'false'). It checks out the exact stable commit and runs the existing scripts/create-nightly-tag.sh to cut and push a nightly tag from that commit.
  3. notify-slack now also fires if the mirror step fails.

How it works end-to-end

Key correctness details

Cost tradeoff (as flagged)

Every stable release now runs GoReleaser twice (including a second macOS notarization pass) and creates one extra nightly GitHub release/tag. That's inherent to keeping the nightly channel truly -nightly-versioned.

I validated the YAML parses and the job graph/conditions are correct. actionlint isn't installed here, so if you want the deeper Actions-expression lint before merging, I can add it or you can run it in CI. Want me to commit this on the current soph/release-nightly branch?

can you open a draft PR?

Done. Draft PR is up:

#1662 — release: mirror stable tags to the nightly channel → https://github.com/entireio/cli/pull/1662

One thing to flag before you mark it ready: the mirror-nightly job needs the HOMEBREW_TAP_APP GitHub App to have write access to the cli repo (contents/workflows) so it can push the nightly tag. nightly.yml already requests repositories: cli from the same app, so this should already be granted — worth a quick confirm since a push failure there is the main way this job could break.

[187c90erelease: mirror stable tags to the nightly channel

A stable tag only refreshes the stable Homebrew cask; the nightly cask keeps pointing at the last nightly build until the 06:00 UTC cron runs — and create-nightly-tag.sh skips when HEAD already has a nightly, so nightly users can sit a version number below a just-shipped stable release indefinitely.

Add a mirror-nightly job that runs after a successful stable release, cuts a nightly tag from the exact stable commit, and pushes it with a cli-scoped GitHub App token so the push re-triggers the workflow on the nightly-tag path and uploads the entire@nightly cask. The nightly binary stays -nightly-versioned, so versioncheck/brew keep those users on the nightly channel.

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com Entire-Checkpoint: 01KWY0S8FG8SXMGKZ1GM4EWGJP+49/-2](/content/gh/entireio/cli/commit/187c90ec6dea2ce2c1bc58be2b16875fbe53b264/index.html)