chore: manual + monthly release workflow - #92
Merged
Conversation
Releases are no longer cut automatically on every push to main. A dedicated release.yml handles them two ways, both minute-conscious: - Manual: workflow_dispatch builds, tags and publishes a GitHub Release from main on demand (with a force input to release even without new commits). - Monthly: a cron on the 1st runs a cheap Ubuntu check that compares main to the last v* tag and only spends the Windows build+publish when there are new commits. ci.yml is reduced to build validation: removed the push-to-main release job and the now-dead dev-release job (develop no longer triggers ci after the gating in #90), and dropped the push trigger. docs/building.md updated. This change is workflow + docs only, nothing to build or test. [skip ci]
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.
Replaces release-on-every-push-to-main with an explicit, minute-conscious release model.
New:
release.ymlTwo ways to release, both from
main:v<version>(nbgv), and publishes a GitHub Release withConfuserEx-CLI.zip,ConfuserEx-GUI.zip,ConfuserEx.zipand the MSBuild-tasks.nupkg. Aforceinput releases even with no new commits.checkjob comparesmainto the lastv*tag; the expensive Windows build+publish job (needs: check) runs only if there are new commits. No changes → a few seconds of a free runner, nothing published.Guards: tag creation is skipped if the version tag already exists;
concurrency: releaseprevents overlapping runs.ci.ymlreduced to build validationreleasejob (moved torelease.yml).dev-releasejob — it was already dead (develop stopped triggeringciafter the gating in chore: gate CI to the develop-to-main release path #90).pushtrigger.ci.ymlnow runs only for PRs intomain(+run-cilabel /workflow_dispatch), building and packaging as a validation gate.Behaviour summary
mainci+test+lint(validation)mainreleasemanually, or wait for the monthly checkmainreleasebuilds + publishesRollout note
This lands on
develop, then reachesmainvia the open release PR #91. After #91 merges,mainhasrelease.yml, so you cut the first release by running release manually from the Actions tab (or waiting for the 1st). The merge to main itself no longer triggers anything.docs/building.mdupdated.[skip ci]— workflow + docs only.