Make the AppImage Linux row actually extract, and hold Linux to the macOS preflight bar
The appimage row invoked the extractor by bare filename, and a command word with no slash is resolved through PATH rather than the working directory, so the extraction exited 127 and the bundled-installer assertion below it never ran. Prefix it with ./ so the row exercises what it claims to. The Linux log step also asserted nothing: it skipped a missing log with continue and discarded the grep with || true. The launch step only proves the process stayed alive for 90 seconds, and the bundled-installer checks do not exercise the Rust preflight path, so an app that hung before preflight completed passed both required Linux rows. Require the same desktop_preflight completed disposition= record the macOS rows already do.
This commit is contained in:
parent
50afa4d21c
commit
9a8a749d07
1 changed files with 14 additions and 1 deletions
|
|
@ -318,7 +318,9 @@ jobs:
|
|||
if [ "${{ matrix.kind }}" = "deb" ]; then
|
||||
SH="$(dpkg -L "$(dpkg-deb -f dl/*.deb Package)" | grep -E '/install\.sh$' | head -1)"
|
||||
else
|
||||
(cd dl && "$(ls *.AppImage | head -1)" --appimage-extract >/dev/null)
|
||||
# ls returns a bare filename here, and a command word with no slash is
|
||||
# resolved through PATH, not the cwd, so this needs the ./ prefix.
|
||||
(cd dl && "./$(ls *.AppImage | head -1)" --appimage-extract >/dev/null)
|
||||
SH="$(find dl/squashfs-root -name install.sh -type f | head -1)"
|
||||
fi
|
||||
[ -n "$SH" ] && [ -f "$SH" ] || { echo "::error::the bundle ships no install.sh resource"; exit 1; }
|
||||
|
|
@ -362,7 +364,18 @@ jobs:
|
|||
[ -f "$f" ] || continue
|
||||
echo "=== $f ==="; cp "$f" logs/ 2>/dev/null || true; tail -60 "$f"
|
||||
grep -E "disposition=|can_auto_repair=|ModuleNotFoundError" "$f" || true
|
||||
found=1
|
||||
if grep -qE "desktop_preflight completed disposition=" "$f"; then disposition=1; fi
|
||||
done
|
||||
# Same acceptance criterion the macOS rows already enforce. Everything
|
||||
# above is `|| true` and the loop skips a missing log outright, so
|
||||
# without these two lines the step could not fail. setup_logging
|
||||
# (src-tauri/src/main.rs:50-67) opens tauri.log unconditionally at
|
||||
# process start, so no log at all means the binary never got that far,
|
||||
# and the launch step only proves the process stayed alive: an app that
|
||||
# hangs before preflight completes would otherwise pass both Linux rows.
|
||||
[ "${found:-0}" = "1" ] || { echo "::error::the app wrote no tauri.log; it never reached setup_logging"; exit 1; }
|
||||
[ "${disposition:-0}" = "1" ] || { echo "::error::tauri.log records no desktop_preflight disposition; the app never completed preflight"; exit 1; }
|
||||
|
||||
- name: Upload logs
|
||||
if: always()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue