Skip to content

Commit 271644a

Browse files
MagicalTuxclaude
andcommitted
add Windows NSIS installer and macOS pkg to build workflow
- Windows: build NSIS installer using installer/win64/installer.nsi - macOS: create .app bundle with fyne, then .pkg with pkgbuild - include installers in release artifacts Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 8b68997 commit 271644a

1 file changed

Lines changed: 54 additions & 1 deletion

File tree

.github/workflows/build.yml

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)