ci: cut an app pre-release on every merge to beta - #48
Merged
Conversation
beta-release.yml carried a paths-ignore list ('**.md', '**.sh', '.gitignore',
'docs/**', 'images/**', '.github/**', '.vscode/**', 'tools/**'). A merge
touching only those paths bumped no version and published nothing, so the
published beta stopped corresponding to the beta branch.
PR #46 hit exactly that: a .github/** change merged to beta and produced no
pre-release, while the firmware repo -- whose equivalent list has no
'.github/**' entry -- cut 3.0.0b16 from the same class of change. The two
repos disagreed about what beta means, and the app's answer was the wrong one:
a beta channel that silently skips releases is worse than one that advances a
version number more often than strictly necessary.
The filter is removed. Every merge to beta now bumps the version and publishes.
Verified, not assumed:
- Version derivation already works. `is_beta_mode()` keys off
GITHUB_REF == refs/heads/beta, and under that environment the script
computes 3.0.0b17 from the current 3.0.0b16. The bump was never broken --
the trigger was suppressing the whole job before it could run.
- Checkout already sets fetch-depth: 0, which the tag-scan fallback in
compute_beta_version() needs. No repeat of the shallow-clone defect found
in the firmware's build.yml.
- No publish loop. "Commit updated version" uses git-auto-commit-action with
the default GITHUB_TOKEN, and pushes made with GITHUB_TOKEN do not trigger
workflow runs. Confirmed empirically in the firmware repo, where the
equivalent auto-commit ("Apply automatic changes") landed on beta and
started no second run.
Consequence worth stating: docs-only and tooling-only merges to beta will now
also cut a pre-release. That is the intent -- beta is a moving pre-release
channel, and constant version bumping there is explicitly acceptable.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The bug
beta-release.ymlcarried apaths-ignorelist:A merge touching only those paths bumped no version and published nothing — so the published beta silently stopped corresponding to the beta branch.
#46 hit exactly this: a
.github/**change merged to beta and produced no pre-release, while the firmware repo — whose equivalent list has no.github/**entry — cut3.0.0b16from the same class of change. The two repos disagreed about what beta means, and the app's answer was the wrong one. A beta channel that silently skips releases is worse than one whose version advances more often than strictly necessary.The fix
The filter is removed. Every merge to beta now bumps the version and publishes a pre-release.
Verified, not assumed
The version bump was never broken.
is_beta_mode()keys offGITHUB_REF == refs/heads/beta. Under that environment the script computes3.0.0b17from the current3.0.0b16:The trigger was suppressing the whole job before the bump could run.
fetch-depth: 0is already set on Checkout, whichcompute_beta_version()'s tag-scan fallback needs. No repeat of the shallow-clone defect found in the firmware'sbuild.yml(ci: run gates on every branch, one publisher per branch firestarter#50).No publish loop.
Commit updated versionusesgit-auto-commit-actionwith the defaultGITHUB_TOKEN, and pushes made withGITHUB_TOKENdo not trigger workflow runs. Confirmed empirically in the firmware repo, where the equivalent auto-commit (Apply automatic changes) landed on beta and started no second run.actionlintclean.Consequence worth stating
Docs-only and tooling-only merges to beta will now also cut a pre-release. That is the intent — beta is a moving pre-release channel, and constant version bumping there is explicitly acceptable.
Not covered here
The firmware's
beta-build.ymlstill ignores'**.md','**.sh',docs/**,documents/**,images/**,.vscode/**,.editorconfig/**. It publishes on.github/**changes (which is why b16 exists) but a docs-only merge to firmware beta still cuts nothing. Aligning it is a one-line deletion in the other repo — deliberately left out of this PR, which is scoped to the app.🤖 Generated with Claude Code