Skip to content

Commit 7797988

Browse files
author
Local User
committed
Add combined Inno installer to Windows release
1 parent 4942222 commit 7797988

2 files changed

Lines changed: 94 additions & 15 deletions

File tree

.github/workflows/jamulusplus-build.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,44 @@ jobs:
6666
--target jamulus_engine_Standalone
6767
--verbose
6868
69+
- name: Prepare Installer Inputs
70+
shell: pwsh
71+
run: |
72+
$installerRoot = "JamulusPlus/build-ci-windows/installer-input"
73+
$vst3Stage = Join-Path $installerRoot "JamulusPlus.vst3"
74+
$standaloneStage = Join-Path $installerRoot "JamulusPlus-Standalone"
75+
Remove-Item -Recurse -Force $installerRoot -ErrorAction SilentlyContinue
76+
New-Item -ItemType Directory -Force -Path $vst3Stage | Out-Null
77+
New-Item -ItemType Directory -Force -Path $standaloneStage | Out-Null
78+
Copy-Item -Path "JamulusPlus/build-ci-windows/plugin/jamulus_engine_artefacts/Release/VST3/JamulusPlus.vst3/*" -Destination $vst3Stage -Recurse -Force
79+
$standaloneSource = if (Test-Path "JamulusPlus/dist/JamulusPlus-Standalone") { "JamulusPlus/dist/JamulusPlus-Standalone" } else { "JamulusPlus/build-ci-windows/plugin/jamulus_engine_artefacts/Release/Standalone" }
80+
Copy-Item -Path "$standaloneSource\\*" -Destination $standaloneStage -Recurse -Force
81+
82+
- name: Install Inno Setup
83+
shell: pwsh
84+
run: choco install innosetup --no-progress -y
85+
86+
- name: Build Inno Installer
87+
shell: pwsh
88+
run: |
89+
$tagName = "${{ github.ref_name }}"
90+
if ([string]::IsNullOrWhiteSpace($tagName)) { $tagName = "dev" }
91+
$numericParts = [regex]::Matches($tagName, '\d+') | ForEach-Object { $_.Value }
92+
if ($numericParts.Count -eq 0) { $numericParts = @("0") }
93+
while ($numericParts.Count -lt 4) { $numericParts += "0" }
94+
$versionInfo = ($numericParts | Select-Object -First 4) -join "."
95+
$iscc = "C:\Program Files (x86)\Inno Setup 6\ISCC.exe"
96+
& $iscc `
97+
"/DMyAppVersion=$versionInfo" `
98+
"/DMyAppDisplayVersion=$tagName" `
99+
"/DMyVersionInfoVersion=$versionInfo" `
100+
"/DMyOutputDir=JamulusPlus/build-ci-windows/installer-output" `
101+
"/DMyOutputBaseFilename=JamulusPlus-Setup-$tagName" `
102+
"/DMyVst3SourceDir=$(Resolve-Path 'JamulusPlus/build-ci-windows/installer-input/JamulusPlus.vst3')" `
103+
"/DMyStandaloneSourceDir=$(Resolve-Path 'JamulusPlus/build-ci-windows/installer-input/JamulusPlus-Standalone')" `
104+
"JamulusPlus/installer/jamulus_vst3.iss"
105+
if ($LASTEXITCODE -ne 0) { throw "Inno Setup compilation failed." }
106+
69107
- name: Upload CLAP
70108
uses: actions/upload-artifact@v4
71109
with:
@@ -89,6 +127,13 @@ jobs:
89127
JamulusPlus/build-ci-windows/plugin/jamulus_engine_artefacts/Release/Standalone/**
90128
JamulusPlus/dist/JamulusPlus-Standalone/**
91129
130+
- name: Upload Installer
131+
uses: actions/upload-artifact@v4
132+
with:
133+
name: JamulusPlus-windows-installer
134+
if-no-files-found: error
135+
path: JamulusPlus/build-ci-windows/installer-output/*.exe
136+
92137
- name: Package Release Assets
93138
if: startsWith(github.ref, 'refs/tags/V') || startsWith(github.ref, 'refs/tags/v')
94139
shell: pwsh
@@ -106,6 +151,7 @@ jobs:
106151
Copy-Item -Path "$standaloneSource\\*" -Destination $standaloneStage -Recurse -Force
107152
}
108153
Compress-Archive -Path "$standaloneStage\\*" -DestinationPath "release-assets/JamulusPlus-${{ github.ref_name }}-windows-standalone.zip" -Force
154+
Copy-Item -Path "JamulusPlus/build-ci-windows/installer-output/*.exe" -Destination "release-assets/" -Force
109155
110156
- name: Publish Release Assets
111157
if: startsWith(github.ref, 'refs/tags/V') || startsWith(github.ref, 'refs/tags/v')
@@ -117,6 +163,7 @@ jobs:
117163
release-assets/JamulusPlus-${{ github.ref_name }}-windows-clap.zip
118164
release-assets/JamulusPlus-${{ github.ref_name }}-windows-vst3.zip
119165
release-assets/JamulusPlus-${{ github.ref_name }}-windows-standalone.zip
166+
release-assets/JamulusPlus-Setup-${{ github.ref_name }}.exe
120167
121168
build-macos:
122169
name: macOS CLAP + VST3 + AU + Standalone

JamulusPlus/installer/jamulus_vst3.iss

Lines changed: 47 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,67 @@
1-
#define MyAppName "JamulusPlus"
2-
#define MyAppVersion "0.1.0"
3-
#define MyAppPublisher "AndyMcProducer"
4-
#define MyAppURL "https://github.com/AndyMcProducer/jamulus"
5-
#define MyAppCopyright "Copyright (C) 2026 AndyMcProducer"
6-
#define MyVst3Dir "{commoncf64}\VST3"
7-
#define MyStandaloneDir "{autopf64}\JamulusPlus"
1+
#ifndef MyAppName
2+
#define MyAppName "JamulusPlus"
3+
#endif
4+
#ifndef MyAppVersion
5+
#define MyAppVersion "0.1.0"
6+
#endif
7+
#ifndef MyAppDisplayVersion
8+
#define MyAppDisplayVersion MyAppVersion
9+
#endif
10+
#ifndef MyVersionInfoVersion
11+
#define MyVersionInfoVersion MyAppVersion
12+
#endif
13+
#ifndef MyAppPublisher
14+
#define MyAppPublisher "AndyMcProducer"
15+
#endif
16+
#ifndef MyAppURL
17+
#define MyAppURL "https://github.com/AndyMcProducer/jamulus"
18+
#endif
19+
#ifndef MyAppCopyright
20+
#define MyAppCopyright "Copyright (C) 2026 AndyMcProducer"
21+
#endif
22+
#ifndef MyVst3Dir
23+
#define MyVst3Dir "{commoncf64}\VST3"
24+
#endif
25+
#ifndef MyStandaloneDir
26+
#define MyStandaloneDir "{autopf64}\JamulusPlus"
27+
#endif
28+
#ifndef MyVst3SourceDir
29+
#define MyVst3SourceDir "..\dist\JamulusPlus.vst3"
30+
#endif
31+
#ifndef MyStandaloneSourceDir
32+
#define MyStandaloneSourceDir "..\dist\JamulusPlus-Standalone"
33+
#endif
34+
#ifndef MyOutputDir
35+
#define MyOutputDir "installer_output"
36+
#endif
37+
#ifndef MyOutputBaseFilename
38+
#define MyOutputBaseFilename "JamulusPlus_Setup_{#MyAppVersion}"
39+
#endif
840

941
[Setup]
1042
AppId={{0E0E7283-1D30-4D38-8EEA-6C69490B5B81}
1143
AppName={#MyAppName}
12-
AppVersion={#MyAppVersion}
13-
AppVerName={#MyAppName} {#MyAppVersion}
44+
AppVersion={#MyAppDisplayVersion}
45+
AppVerName={#MyAppName} {#MyAppDisplayVersion}
1446
AppPublisher={#MyAppPublisher}
1547
AppPublisherURL={#MyAppURL}
1648
AppSupportURL={#MyAppURL}
1749
AppUpdatesURL={#MyAppURL}
1850
AppCopyright={#MyAppCopyright}
19-
VersionInfoVersion={#MyAppVersion}
51+
VersionInfoVersion={#MyVersionInfoVersion}
2052
VersionInfoCompany={#MyAppPublisher}
2153
VersionInfoDescription={#MyAppName} Installer
2254
VersionInfoCopyright={#MyAppCopyright}
2355
VersionInfoProductName={#MyAppName}
24-
VersionInfoProductVersion={#MyAppVersion}
56+
VersionInfoProductVersion={#MyVersionInfoVersion}
2557
DefaultDirName={#MyStandaloneDir}
2658
DefaultGroupName={#MyAppName}
2759
PrivilegesRequired=admin
2860
PrivilegesRequiredOverridesAllowed=dialog
2961
ArchitecturesAllowed=x64compatible
3062
ArchitecturesInstallIn64BitMode=x64compatible
31-
OutputDir=installer_output
32-
OutputBaseFilename=JamulusPlus_Setup_{#MyAppVersion}
63+
OutputDir={#MyOutputDir}
64+
OutputBaseFilename={#MyOutputBaseFilename}
3365
SetupIconFile=compiler:SetupClassicIcon.ico
3466
UninstallDisplayIcon={app}\JamulusPlus.exe
3567
Compression=lzma2/max
@@ -67,8 +99,8 @@ Name: "standalone"; Description: "JamulusPlus standalone app"; Types: full stand
6799
Name: "desktopicon"; Description: "Create a desktop shortcut for the standalone app"; Components: standalone
68100

69101
[Files]
70-
Source: "..\dist\JamulusPlus.vst3\*"; DestDir: "{#MyVst3Dir}\JamulusPlus.vst3"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: plugin
71-
Source: "..\dist\JamulusPlus-Standalone\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: standalone
102+
Source: "{#MyVst3SourceDir}\*"; DestDir: "{#MyVst3Dir}\JamulusPlus.vst3"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: plugin
103+
Source: "{#MyStandaloneSourceDir}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: standalone
72104

73105
[Icons]
74106
Name: "{group}\JamulusPlus"; Filename: "{app}\JamulusPlus.exe"; Components: standalone

0 commit comments

Comments
 (0)