@@ -232,6 +232,19 @@ jobs:
232232 echo 'self-contained app:' || true
233233 ls -R 'dist/SSH Studio.app/Contents' || true
234234
235+ - name : Smoke test self-contained app
236+ run : |
237+ set -euxo pipefail
238+ LAUNCHER='dist/SSH Studio.app/Contents/MacOS/ssh-studio'
239+ test -x "$LAUNCHER"
240+ # CLI help should exit quickly without requiring a GUI session
241+ "$LAUNCHER" --help || true
242+ # Also try launching briefly, then kill
243+ "$LAUNCHER" &
244+ sleep 2 || true
245+ pkill -f "SSH Studio" || true
246+ pkill -f "ssh-studio" || true
247+
235248 - name : Create DMG
236249 run : |
237250 set -euxo pipefail
@@ -243,6 +256,24 @@ jobs:
243256 ln -s /Applications dmgroot/Applications
244257 hdiutil create -volname "SSH Studio" -srcfolder dmgroot -ov -fs HFS+ "ssh-studio-${VER}-${ARCH}.dmg"
245258
259+ - name : Mount DMG and smoke test app
260+ run : |
261+ set -euxo pipefail
262+ DMG="$(ls -1 ssh-studio-*.dmg | head -n1)"
263+ MNT="$(mktemp -d /tmp/sshstudio.XXXX)"
264+ hdiutil attach "$DMG" -mountpoint "$MNT" -nobrowse -quiet
265+ ls -la "$MNT"
266+ LAUNCHER="$MNT/SSH Studio.app/Contents/MacOS/ssh-studio"
267+ test -x "$LAUNCHER"
268+ # CLI help should execute; ignore non-zero in case GTK prints warnings
269+ "$LAUNCHER" --help || true
270+ # Briefly launch then terminate
271+ "$LAUNCHER" &
272+ sleep 2 || true
273+ pkill -f "SSH Studio" || true
274+ pkill -f "ssh-studio" || true
275+ hdiutil detach "$MNT" -quiet || true
276+
246277 - name : Upload artifact
247278 uses : actions/upload-artifact@v4
248279 with :
0 commit comments