Add Inno Setup installer and automatic version bump #7

Merged
hannah-vernon merged 2 commits from feature/installer into dev 2026-06-15 11:20:58 -05:00

What does this PR do?

Adds a Windows installer for Tayler Log Tailer plus automatic version management.

Installer (Inno Setup 6): per-machine (Program Files, admin elevation),
x64-only, and self-contained - the .NET 10 runtime is bundled, so no separate
runtime install is required. Always creates a Start Menu entry and offers an
optional desktop shortcut (unchecked by default).

  • installer/TaylerLogTailer.iss - the Inno Setup script.
  • installer/build-installer.ps1 - publishes the self-contained x64 build then
    compiles the installer with ISCC. Parse-validated.

Versioning (mirrors SqlServerAgMonitor): the assembly and installer version
is derived from git tags by MinVer, and a Forgejo Actions workflow tags a new
version on each dev to main merge.

  • Directory.Build.props - MinVer 6.0.0 (PrivateAssets=All), tag prefix v,
    minimum 1.0.
  • TaylerLogTailer.csproj - dropped the static <Version> (MinVer supplies it);
    kept Company/Product/Copyright metadata.
  • .github/workflows/version-bump.yml - on a merged PR into main, increments
    the minor and sets patch to the PR number, then pushes a new
    v{major}.{minor}.{patch} tag. Targets the ubuntu-latest runner.
  • .gitignore - ignores publish/ and dist/ build artifacts.
  • .gitattributes - marks *.iss as CRLF.
  • README.md - new Installer and Versioning sections; updated project layout.
  • THIRD-PARTY-NOTICES.md - notes MinVer and Inno Setup as build-time tooling.

A Windows-based Forgejo runner and a release/installer-build workflow (publish +
compile the installer + attach to a Forgejo release) are deferred to a follow-up.

Fixes #

How was this tested?

  • dotnet build Tayler.slnx - 0 errors, 0 warnings (with MinVer restoring and
    resolving the version)
  • Verified MinVer output: FileVersion 1.0.0.0,
    ProductVersion 1.0.0-alpha.0.N (pre-release, no tag yet).
  • Ran installer/build-installer.ps1 end-to-end: published the self-contained
    x64 build then compiled dist/TaylerLogTailer-1.0.0.0-setup-x64.exe (44.7 MB).
  • Manually tested tailing against a folder of log files on ___
  • Version Bump workflow exercised on a real dev to main merge (runner +
    tag-push permissions confirmed)

Checklist

  • I have read the Contributing Guide
  • Changes are focused - one logical change per PR
  • Documentation updated (if user-visible behavior changed)
  • New dependencies are MIT/Apache-2.0 and security-vetted
  • No commented-out code or debug leftovers
## What does this PR do? Adds a Windows installer for Tayler Log Tailer plus automatic version management. **Installer** (Inno Setup 6): per-machine (Program Files, admin elevation), x64-only, and self-contained - the .NET 10 runtime is bundled, so no separate runtime install is required. Always creates a Start Menu entry and offers an optional desktop shortcut (unchecked by default). - `installer/TaylerLogTailer.iss` - the Inno Setup script. - `installer/build-installer.ps1` - publishes the self-contained x64 build then compiles the installer with ISCC. Parse-validated. **Versioning** (mirrors SqlServerAgMonitor): the assembly and installer version is derived from git tags by MinVer, and a Forgejo Actions workflow tags a new version on each `dev` to `main` merge. - `Directory.Build.props` - MinVer 6.0.0 (`PrivateAssets=All`), tag prefix `v`, minimum 1.0. - `TaylerLogTailer.csproj` - dropped the static `<Version>` (MinVer supplies it); kept Company/Product/Copyright metadata. - `.github/workflows/version-bump.yml` - on a merged PR into `main`, increments the minor and sets patch to the PR number, then pushes a new `v{major}.{minor}.{patch}` tag. Targets the `ubuntu-latest` runner. - `.gitignore` - ignores `publish/` and `dist/` build artifacts. - `.gitattributes` - marks `*.iss` as CRLF. - `README.md` - new Installer and Versioning sections; updated project layout. - `THIRD-PARTY-NOTICES.md` - notes MinVer and Inno Setup as build-time tooling. A Windows-based Forgejo runner and a release/installer-build workflow (publish + compile the installer + attach to a Forgejo release) are deferred to a follow-up. Fixes # ## How was this tested? - [x] `dotnet build Tayler.slnx` - 0 errors, 0 warnings (with MinVer restoring and resolving the version) - [x] Verified MinVer output: `FileVersion 1.0.0.0`, `ProductVersion 1.0.0-alpha.0.N` (pre-release, no tag yet). - [x] Ran `installer/build-installer.ps1` end-to-end: published the self-contained x64 build then compiled `dist/TaylerLogTailer-1.0.0.0-setup-x64.exe` (44.7 MB). - [ ] Manually tested tailing against a folder of log files on ___ - [ ] Version Bump workflow exercised on a real `dev` to `main` merge (runner + tag-push permissions confirmed) ## Checklist - [x] I have read the [Contributing Guide](../CONTRIBUTING.md) - [x] Changes are focused - one logical change per PR - [x] Documentation updated (if user-visible behavior changed) - [x] New dependencies are MIT/Apache-2.0 and security-vetted - [x] No commented-out code or debug leftovers
Add a per-machine Windows installer built with Inno Setup 6.  The installer
bundles the .NET 10 runtime (self-contained), installs to Program Files with
admin elevation, targets x64 only, and offers an optional desktop shortcut
(unchecked by default).

- installer/TaylerLogTailer.iss: Inno Setup script; version read from the
  published exe, which derives from the csproj <Version> property.
- installer/build-installer.ps1: publishes the self-contained x64 build then
  compiles the installer; parse-validated.
- TaylerLogTailer.csproj: add <Version>/<Company>/<Product>/<Copyright>.
- .gitignore: ignore publish/ and dist/ build artifacts.
- .gitattributes: mark *.iss as CRLF.
- README.md: add Installer section and installer/ to the project layout.
- THIRD-PARTY-NOTICES.md: note Inno Setup as a build-time tool.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Mirror the versioning approach from SqlServerAgMonitor so releases are tagged and
versioned automatically.

- Directory.Build.props: add MinVer 6.0.0 (PrivateAssets=All) with tag prefix v
  and MinVerMinimumMajorMinor 1.0, so the assembly/installer version derives from
  git tags.
- TaylerLogTailer.csproj: drop the static <Version> (MinVer now supplies it);
  keep Company/Product/Copyright.
- .github/workflows/version-bump.yml: Forgejo Actions workflow that, on a merged
  PR into main, increments the minor and sets patch to the PR number, then pushes
  a new v{major}.{minor}.{patch} tag. Targets the ubuntu-latest runner.
- README.md: add a Versioning section and list the workflow in the project layout.
- THIRD-PARTY-NOTICES.md: note MinVer alongside Inno Setup as build-time tooling.

The installer reads the published exe's file version, so tagged builds flow
straight into the setup filename and metadata. A Windows runner plus a
release/installer-build workflow are deferred to a follow-up.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
hannah-vernon changed title from Add Inno Setup installer for self-contained x64 build to Add Inno Setup installer and automatic version bump 2026-06-15 11:11:36 -05:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
hannah-vernon/tayler-log-tailer!7
No description provided.