Azrael's Mods Guides

Survivor's Toolkit

Releasing

On test, bump <Version> in Directory.Build.props and add a ## <version> section to CHANGELOG.md. When test is ready, run Promote test and release (Actions tab; tick dry_run to only check and test). It merges main into test if test doesn't already contain it, runs the tests, fast-forwards main to test, tags it v<version> and leaves test at the same commit, all in one push. The tag starts the Release workflow, which refuses a version with no changelog section, tests, publishes the Setup.exe with its Velopack update packages (*.nupkg, releases.win.json, assets.win.json, RELEASES; a delta from the previous release when there is one), SurvivorsToolkit-<version>-win-x64.exe, the framework-dependent zip (all ReadyToRun, so they start quickly) and SHA256SUMS.txt, and creates the release v<version> with that section as its notes, which is what the app's update check looks for. The same section is what the app shows once after updating to that version. A version with a - (such as 0.4.0-beta.1) becomes a pre-release, which the update check skips.

Promote test and release needs a RELEASE_TOKEN repository secret: a fine-grained personal access token for this repository with Contents and Workflows read and write. The built-in token can't push commits that change workflow files, and a tag it pushes wouldn't start the Release workflow.

Release can also be run by hand on any branch, optionally with extra notes; it tags the commit it ran on.

From the README on GitHub.