Skip to content

chore: manual + monthly release workflow - #92

Merged
mcpolo99 merged 1 commit into
developfrom
chore/manual-scheduled-release
Jul 4, 2026
Merged

chore: manual + monthly release workflow#92
mcpolo99 merged 1 commit into
developfrom
chore/manual-scheduled-release

Conversation

@mcpolo99

@mcpolo99 mcpolo99 commented Jul 4, 2026

Copy link
Copy Markdown
Owner

Replaces release-on-every-push-to-main with an explicit, minute-conscious release model.

New: release.yml

Two ways to release, both from main:

  • Manual — Actions tab → releaseRun workflow. Builds, tags v<version> (nbgv), and publishes a GitHub Release with ConfuserEx-CLI.zip, ConfuserEx-GUI.zip, ConfuserEx.zip and the MSBuild-tasks .nupkg. A force input releases even with no new commits.
  • Monthly — cron on the 1st. A cheap Ubuntu check job compares main to the last v* 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: release prevents overlapping runs.

ci.yml reduced to build validation

  • Removed the push-to-main release job (moved to release.yml).
  • Removed the dev-release job — it was already dead (develop stopped triggering ci after the gating in chore: gate CI to the develop-to-main release path #90).
  • Dropped the push trigger. ci.yml now runs only for PRs into main (+ run-ci label / workflow_dispatch), building and packaging as a validation gate.

Behaviour summary

Event Result
PR into main ci + test + lint (validation)
Merge into main nothing auto-runs — no release on push anymore
Release wanted run release manually, or wait for the monthly check
1st of month, new commits on main release builds + publishes
1st of month, no new commits cheap check only, nothing published

Rollout note

This lands on develop, then reaches main via the open release PR #91. After #91 merges, main has release.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.md updated. [skip ci] — workflow + docs only.

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]
@mcpolo99
mcpolo99 merged commit 2d4c539 into develop Jul 4, 2026
@mcpolo99
mcpolo99 deleted the chore/manual-scheduled-release branch July 4, 2026 11:37
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.

1 participant