Fix CI: title removal order, Windows fixtures and POSIX-only tests

- Title removal ran the Steam shortcut tidy-up before steamos-delete, which
  finds the Proton prefix through that shortcut, so compatdata was left behind
  (e2e caught it). steamos-delete runs first again; art/collection tidy-up after.
- Test fixtures are byte-exact: never convert line endings (a text-looking
  fixture APK got CRLF on Windows and failed its SHA-256).
- Read index.html/artwork-settings.js as UTF-8 in tests; app-data backup and
  OBB shell tests run only on POSIX (they exercise the Frame-side scripts).
- e2e expects the icon under artwork/ now.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
saphidandClaude Opus 5.5 committed 2026-09-28 23:59:44 +10:00
1 parent cb05395280
commit f81c98a87b
6 files changed
+33 -9

No files matched your search

+9 -5
View File
@@ -890,16 +890,20 @@ def remove(gid):
try:
gid = _check_id(gid)
ensure_utils()
# Tidying Steam's side is best effort; steamos-delete removes the title regardless.
try:
shortcut = _library_shortcut(gid, f'{_home()}/{GAMES}/{gid}')
if shortcut:
frame_android.shortcut_tool('remove', str(shortcut))
except (FrameError, ValueError):
pass
# steamos-delete removes the folder and syncs Steam's shortcuts; its json files stay, so clear them too.
shortcut = None
# steamos-delete removes the folder, the shortcut and its Proton prefix (found through the
# shortcut), so it runs first; its json files stay, so clear them too.
ssh(f'{PY}steamos-delete --delete-title {gid}', timeout=120)
ssh(f'rm -f {_json_files(gid)}', timeout=30)
# Then tidy what it leaves (artwork, collections); best effort.
if shortcut:
try:
frame_android.shortcut_tool('remove', str(shortcut))
except (FrameError, ValueError):
pass
return {'id': gid}
finally:
_install_lock.release()