@@ -15,54 +15,57 @@ jobs:
1515 - name : Checkout
1616 uses : actions/checkout@v4
1717
18- - name : Setup Flutter
19- uses : subosito/flutter-action@v2
18+ - name : Setup Node.js
19+ uses : actions/setup-node@v4
2020 with :
21- channel : stable
22- cache : true
21+ node-version : 20
22+ cache : npm
2323
24- - name : Enable macOS desktop
25- run : flutter config --enable-macos-desktop
24+ - name : Setup Rust
25+ uses : dtolnay/rust-toolchain@stable
2626
27- - name : Install dependencies
28- run : flutter pub get
29-
30- - name : Run analyze
31- run : flutter analyze --no-fatal-infos
27+ - name : Rust cache
28+ uses : swatinem/rust-cache@v2
29+ with :
30+ workspaces : src-tauri
3231
33- - name : Build macOS release
34- run : flutter build macos --release
32+ - name : Install frontend dependencies
33+ run : npm ci
3534
3635 - name : Extract version from tag
3736 id : version
3837 run : echo "tag=${GITHUB_REF#refs/tags/}" >> "$GITHUB_OUTPUT"
3938
39+ - name : Build Tauri app
40+ run : npx tauri build
41+
4042 - name : Verify build output
4143 run : |
42- APP_PATH="build/macos/Build/Products/Release/Tapir.app"
44+ APP_PATH="src-tauri/target/release/bundle/macos/Tapir.app"
45+ DMG_PATH="src-tauri/target/release/bundle/dmg"
4346 if [ ! -d "$APP_PATH" ]; then
44- echo "::error::build output not found at $APP_PATH"
47+ echo "::error::Tapir.app not found at $APP_PATH"
4548 exit 1
4649 fi
47- echo "build output verified: $APP_PATH "
50+ echo "Tapir.app verified"
4851 ls -lh "$APP_PATH"
52+ ls -lh "$DMG_PATH"/*.dmg || true
4953
50- - name : Create DMG
54+ - name : Rename DMG with version
5155 run : |
52- hdiutil create -volname "Tapir" \
53- -srcfolder build/macos/Build/Products/Release/Tapir.app \
54- -ov -format UDZO \
55- Tapir-${{ steps.version.outputs.tag }}.dmg
56+ DMG_SRC=$(ls src-tauri/target/release/bundle/dmg/*.dmg | head -1)
57+ cp "$DMG_SRC" "Tapir-${{ steps.version.outputs.tag }}-macOS-arm64.dmg"
5658
5759 - name : Compress .app as ZIP
5860 run : |
59- cd build/macos/Build/Products/Release
60- zip -r -y "$GITHUB_WORKSPACE/Tapir-${{ steps.version.outputs.tag }}-macOS.zip" Tapir.app
61+ cd src-tauri/target/release/bundle/macos
62+ zip -r -y "$GITHUB_WORKSPACE/Tapir-${{ steps.version.outputs.tag }}-macOS-arm64 .zip" Tapir.app
6163
6264 - name : Generate checksums
6365 run : |
64- shasum -a 256 Tapir-${{ steps.version.outputs.tag }}.dmg \
65- Tapir-${{ steps.version.outputs.tag }}-macOS.zip \
66+ shasum -a 256 \
67+ Tapir-${{ steps.version.outputs.tag }}-macOS-arm64.dmg \
68+ Tapir-${{ steps.version.outputs.tag }}-macOS-arm64.zip \
6669 > checksums-sha256.txt
6770 echo "--- SHA-256 checksums ---"
6871 cat checksums-sha256.txt
7174 uses : softprops/action-gh-release@v2
7275 with :
7376 name : " Tapir ${{ steps.version.outputs.tag }}"
74- generate_release_notes : true
77+ body : |
78+ ## Tapir ${{ steps.version.outputs.tag }}
79+
80+ macOS keyboard automation tool — send automated key events to any target window.
81+
82+ **Built with:** Tauri v2 (Rust) + React + TypeScript
83+ **Requires:** macOS 14.0+ (Sonoma)
84+ **Sandbox:** Enabled (App Store compatible)
85+
86+ ### Install
87+ 1. Download `.dmg`, open it, drag `Tapir.app` to Applications
88+ 2. On first launch: System Settings → Privacy & Security → Accessibility → enable Tapir
7589 files : |
76- Tapir-${{ steps.version.outputs.tag }}.dmg
77- Tapir-${{ steps.version.outputs.tag }}-macOS.zip
90+ Tapir-${{ steps.version.outputs.tag }}-macOS-arm64 .dmg
91+ Tapir-${{ steps.version.outputs.tag }}-macOS-arm64 .zip
7892 checksums-sha256.txt
0 commit comments