Add installer build script, CI workflow, silent params and optional signing

This commit is contained in:
IgorRachkov
2026-04-29 07:18:39 +03:00
parent e3341f9de3
commit 54e1867bfc
4 changed files with 139 additions and 9 deletions
+36 -9
View File
@@ -5,20 +5,47 @@ This directory contains a ready-to-build scaffold for a classic Setup.exe instal
## Files
- `AWatch-rus-Setup.iss` — Inno Setup script.
- `Invoke-AWatchRusInstall.ps1` — wrapper that invokes `deploy-ensemble.ps1` with installer parameters.
- `build-installer.ps1` — one-click local build script for Inno Setup.
## Build
1. Install Inno Setup 6 on Windows build host.
2. Open `AWatch-rus-Setup.iss` in Inno Setup Compiler.
3. Build to produce `output/AWatch-rus-Setup.exe`.
## Local build (one-click)
```powershell
cd .\windows\installer
.\build-installer.ps1
```
Optional custom path to compiler:
```powershell
.\build-installer.ps1 -IsccPath 'C:\Program Files (x86)\Inno Setup 6\ISCC.exe'
```
## Silent deployment parameters (SCCM/Intune/GPO)
Installer supports command-line parameters:
- `/SERVERHOST=aw.example.local`
- `/SERVERPORT=5600`
- `/DOMAIN=CONTOSO`
- `/USERS=user1,user2`
- `/INSTALLROOT="C:\Program Files\ActivityWatch"`
- `/STATEROOT="C:\ProgramData\ActivityWatch"`
- `/AFKENABLED=true|false`
- `/WINDOWENABLED=true|false`
Example:
```powershell
AWatch-rus-Setup.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART `
/SERVERHOST=aw.example.local /SERVERPORT=5600 /DOMAIN=CONTOSO `
/USERS=user1,user2 /AFKENABLED=true /WINDOWENABLED=true
```
## CI build and optional code signing
A GitHub Actions workflow builds the installer on `windows-latest` and uploads `Setup.exe` as an artifact.
Optional production signing is enabled via `SignTool=byparam ...` in `.iss` and expects `SIGNTOOL_CMD`.
Set repository secret `SIGNTOOL_CMD` with your full sign command template.
## Behavior
- Requires Administrator privileges.
- Copies toolkit scripts into `{app}\tools`.
- Collects server/domain/users parameters via wizard page.
- Collects server/domain/users parameters via wizard page (or command-line silent params).
- Runs `Invoke-AWatchRusInstall.ps1` -> `deploy-ensemble.ps1`.
- Runs validation at the end.
- Uninstall step removes `ActivityWatch` scheduled tasks.
## Notes
- Default publisher URL is a placeholder (`https://example.local/awatch-rus`), replace it.
- For silent enterprise rollout, extend `[Run]` and parse `/SERVERHOST=...` style custom switches if needed.