Skip to content

Commit ddf2c4c

Browse files
committed
RelOps: Update release workflow to unsigned with custom DMG
1 parent 73adf86 commit ddf2c4c

1 file changed

Lines changed: 24 additions & 115 deletions

File tree

.github/workflows/release.yml

Lines changed: 24 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,54 @@
1-
name: Release Build
1+
name: Build and Release Mac App
22

33
on:
44
push:
55
tags:
66
- 'v*'
7-
workflow_dispatch:
8-
inputs:
9-
version:
10-
description: 'Release version (e.g., v1.0.0)'
11-
required: true
12-
type: string
137

148
jobs:
159
build-and-release:
10+
runs-on: macos-14
1611
permissions:
1712
contents: write
18-
runs-on: macos-14
19-
13+
2014
steps:
21-
- name: Checkout code
15+
- name: Checkout Code
2216
uses: actions/checkout@v4
23-
17+
2418
- name: Setup Xcode
2519
uses: maxim-lobanov/setup-xcode@v1
2620
with:
2721
xcode-version: '15.2'
28-
22+
2923
- name: Install create-dmg
3024
run: brew install create-dmg
31-
32-
- name: Build Release
25+
26+
- name: Build App (Unsigned)
3327
run: |
34-
xcodebuild -scheme speaktype \
28+
echo "🏗️ Building SpeakType..."
29+
xcodebuild -scheme "speaktype" \
3530
-configuration Release \
3631
-derivedDataPath build \
3732
SYMROOT=build/Release \
3833
CODE_SIGN_IDENTITY="" \
3934
CODE_SIGNING_REQUIRED=NO
40-
35+
4136
- name: Verify Build
4237
run: |
4338
if [ ! -d "build/Release/speaktype.app" ]; then
44-
echo "❌ Build failed - app not found"
39+
echo "❌ Build failed - app not found at build/Release/speaktype.app"
4540
exit 1
4641
fi
4742
echo "✅ Build successful"
48-
ls -la build/Release/
49-
50-
- name: Create ZIP Package
51-
run: |
52-
mkdir -p dist
53-
cd build/Release
54-
zip -r ../../dist/SpeakType.zip speaktype.app
55-
cd ../..
56-
ls -lh dist/SpeakType.zip
57-
43+
5844
- name: Create DMG
5945
run: |
46+
echo "💿 Creating DMG..."
47+
mkdir -p dist
48+
49+
# Clean up any previous attempts
50+
rm -f dist/SpeakType.dmg
51+
6052
create-dmg \
6153
--volname "SpeakType" \
6254
--window-pos 200 120 \
@@ -66,94 +58,11 @@ jobs:
6658
--app-drop-link 600 185 \
6759
--no-internet-enable \
6860
"dist/SpeakType.dmg" \
69-
"build/Release/speaktype.app" || \
70-
hdiutil create \
71-
-volname "SpeakType" \
72-
-srcfolder build/Release/speaktype.app \
73-
-ov -format UDZO \
74-
dist/SpeakType.dmg
75-
ls -lh dist/SpeakType.dmg
76-
77-
- name: Get version from tag
78-
id: get_version
79-
run: |
80-
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
81-
VERSION="${{ github.event.inputs.version }}"
82-
else
83-
VERSION=${GITHUB_REF#refs/tags/}
84-
fi
85-
echo "version=$VERSION" >> $GITHUB_OUTPUT
86-
echo "Version: $VERSION"
87-
88-
- name: Generate Release Notes
89-
id: release_notes
90-
run: |
91-
cat > release_notes.md << 'EOF'
92-
## 🎉 SpeakType ${{ steps.get_version.outputs.version }}
93-
94-
### 📥 Installation
95-
96-
**For macOS Users:**
97-
1. Download `SpeakType.dmg` below
98-
2. Open the DMG file
99-
3. Drag SpeakType to your Applications folder
100-
4. **Important:** Right-click the app and select "Open" (first time only)
101-
102-
**Why right-click?** This app is not yet notarized with Apple. This is a one-time step.
103-
104-
### ✨ What's New
105-
- Initial release
106-
- Offline voice-to-text transcription
107-
- Multiple Whisper AI models support
108-
- Global hotkey support
109-
- Native macOS UI with dark mode
110-
111-
### 📋 Requirements
112-
- macOS 13.0+ (Ventura or newer)
113-
- Apple Silicon (M1+) recommended
114-
- 2GB free space (for AI models)
115-
116-
### 🐛 Known Issues
117-
- Gatekeeper warning on first launch (see installation steps above)
118-
- WhisperKit dependency warnings in build (harmless)
119-
120-
### 📚 Documentation
121-
See the [README](https://github.com/${{ github.repository }}) for full documentation.
122-
123-
---
124-
125-
**Built with ❤️ | Privacy-First | 100% Offline | Open Source**
126-
EOF
127-
cat release_notes.md
128-
129-
- name: Create GitHub Release
61+
"build/Release/speaktype.app"
62+
63+
- name: Create Release & Upload Assets
13064
uses: softprops/action-gh-release@v2
13165
with:
132-
name: SpeakType ${{ steps.get_version.outputs.version }}
133-
body_path: release_notes.md
134-
files: |
135-
dist/SpeakType.dmg
136-
dist/SpeakType.zip
137-
draft: false
138-
prerelease: false
66+
files: dist/SpeakType.dmg
67+
generate_release_notes: true
13968
fail_on_unmatched_files: true
140-
env:
141-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
142-
143-
- name: Upload Build Artifacts
144-
uses: actions/upload-artifact@v4
145-
with:
146-
name: SpeakType-${{ steps.get_version.outputs.version }}
147-
path: |
148-
dist/SpeakType.dmg
149-
dist/SpeakType.zip
150-
retention-days: 90
151-
152-
- name: Release Summary
153-
run: |
154-
echo "✅ Release ${{ steps.get_version.outputs.version }} created successfully!"
155-
echo ""
156-
echo "📦 Artifacts:"
157-
ls -lh dist/
158-
echo ""
159-
echo "🔗 View release: https://github.com/${{ github.repository }}/releases/tag/${{ steps.get_version.outputs.version }}"

0 commit comments

Comments
 (0)