@@ -132,6 +132,20 @@ jobs:
132132 name : shells-go-windows-amd64
133133 path : shells-go-windows-amd64.exe
134134
135+ - name : Create Windows Installer
136+ shell : pwsh
137+ run : |
138+ Copy-Item shells-go-windows-amd64.exe installer/win64/Shells.exe
139+ choco install nsis -y
140+ cd installer/win64
141+ makensis installer.nsi
142+
143+ - name : Upload installer artifact
144+ uses : actions/upload-artifact@v4
145+ with :
146+ name : shells-windows-installer
147+ path : installer/win64/ShellsSetup.exe
148+
135149 build-macos-intel :
136150 name : Build macOS Intel
137151 runs-on : macos-15-intel
@@ -206,6 +220,37 @@ jobs:
206220 name : shells-go-darwin-universal
207221 path : shells-go-darwin-universal
208222
223+ - name : Install fyne CLI
224+ run : go install fyne.io/fyne/v2/cmd/fyne@latest
225+
226+ - name : Create macOS App Bundle
227+ run : |
228+ # Get version from tag or use default
229+ VERSION=${GITHUB_REF#refs/tags/v}
230+ if [[ "$VERSION" == "$GITHUB_REF" ]]; then
231+ VERSION="0.0.0"
232+ fi
233+
234+ # Create app bundle using fyne with universal binary
235+ mv shells-go-darwin-universal shells-go
236+ fyne package -os darwin -name Shells -appID com.shells.app -appVersion "$VERSION"
237+ rm -f shells-go
238+
239+ # Replace binary with universal binary
240+ mv shells-go-darwin-universal Shells.app/Contents/MacOS/shells-go
241+
242+ # Create pkg installer (unsigned for CI)
243+ mkdir -p build
244+ mv Shells.app build/
245+ pkgbuild --root build --identifier "com.shells.app" --version "$VERSION" \
246+ --install-location "/Applications" Shells.pkg
247+
248+ - name : Upload macOS pkg artifact
249+ uses : actions/upload-artifact@v4
250+ with :
251+ name : shells-macos-pkg
252+ path : Shells.pkg
253+
209254 release :
210255 name : Create Release
211256 runs-on : ubuntu-latest
@@ -228,11 +273,15 @@ jobs:
228273 tar -czvf release/shells-go-linux-amd64-${VERSION}.tar.gz \
229274 -C artifacts/shells-go-linux-amd64 shells-go-linux-amd64
230275
231- # Windows - zip
276+ # Windows - zip (raw binary)
232277 cd artifacts/shells-go-windows-amd64
233278 zip ../../release/shells-go-windows-amd64-${VERSION}.zip shells-go-windows-amd64.exe
234279 cd ../..
235280
281+ # Windows - installer
282+ cp artifacts/shells-windows-installer/ShellsSetup.exe \
283+ release/ShellsSetup-${VERSION}.exe
284+
236285 # macOS Intel - tar.gz
237286 tar -czvf release/shells-go-darwin-amd64-${VERSION}.tar.gz \
238287 -C artifacts/shells-go-darwin-amd64 shells-go-darwin-amd64
@@ -245,6 +294,10 @@ jobs:
245294 tar -czvf release/shells-go-darwin-universal-${VERSION}.tar.gz \
246295 -C artifacts/shells-go-darwin-universal shells-go-darwin-universal
247296
297+ # macOS - pkg installer
298+ cp artifacts/shells-macos-pkg/Shells.pkg \
299+ release/Shells-${VERSION}.pkg
300+
248301 # Generate checksums
249302 cd release
250303 sha256sum * > checksums.txt
0 commit comments