-
Notifications
You must be signed in to change notification settings - Fork 0
Building and Releasing
Claude Sonnet 5 edited this page Aug 25, 2026
·
4 revisions
Requirements: Windows 10/11 (64-bit) and the .NET 8 SDK.
# From Source_Code/
dotnet build # build the solution
dotnet run --project src/GTAV_Mods_Manager.App # run the app
dotnet test # run unit testsThe solution is split into:
-
GTAV_Mods_Manager.Core— logic services (game detection, install/uninstall, safety guard, conflict detection, the SP→FiveM converter, etc.), no external dependencies besidesClosedXMLfor the Excel export. -
GTAV_Mods_Manager.App— the WPF UI (custom MVVM, no framework dependency). -
GTAV_Mods_Manager.Tests— xUnit tests for the Core services.
The full build/test/package/release pipeline is automated; there are no manual publish or upload steps.
.github/workflows/ci.yml — builds and runs the full test suite on every push and pull
request to main. This is the quality gate for ordinary development.
.github/workflows/release.yml — triggered by pushing a tag matching v*.*.*. It:
- Builds and tests the solution (a release never ships if tests fail).
- Publishes a self-contained single-file build internally (win-x64) — this is not uploaded
on its own; it only feeds the installer step and the smoke test below. Also publishes the
framework-dependent
GTAV_Mods_Manager_framework-dependent.zip(~5 MB, needs the .NET 8 Desktop Runtime), which is shipped. - Stamps the version from the tag into the build (
-p:Version=/-p:AssemblyVersion=/-p:FileVersion=) and intoapp.manifest— the.csproj's<Version>no longer needs to be bumped by hand before a release. - Smoke-tests the internal self-contained build (launches it, confirms it stays alive, checks for a crash log).
- Builds the installer,
GTAV_Mods_Manager_V<version>_setup.exe, frominstaller/GTAV_Mods_Manager.issusing Inno Setup (ISCC.exe, preinstalled on thewindows-latestrunner). It packages the self-contained build from step 2, installs per-user under%LOCALAPPDATA%(no admin needed), and adds a Start Menu shortcut, optional desktop icon, and an uninstall entry. - Generates release notes from the commit log since the previous tag.
- Publishes the GitHub Release with the installer and the framework-dependent zip (and their
SHA-256 checksums) attached, using the workflow's own
GITHUB_TOKEN— no personal access token is needed for this step.
git tag v0.17.0
git push origin v0.17.0That's the entire release process. Watch the run under the repository's Actions tab; when
it finishes, the release is live with two files attached — the installer and the
framework-dependent zip. (The raw portable GTAV_Mods_Manager.exe is no longer shipped as its
own asset, by request — the installer is now the primary download.)