steam-deploy: *.vdf is always excluded from the depot, dropping bundled Steam Input configs

Aperta
#307 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
73/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
typescript
Ambito
cli

Direzione di ricerca

Read plugins/steam-deploy/src/vdf-generator.ts and steam-deploy-command.ts around the generated build files and depot content root. Trace how exclusion patterns are applied, then check the upload behavior with a staged depot containing both generated Steam files and game .vdf files. Done means bundled configuration files are included while the CLI’s generated build files remain excluded.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Bug description

The steam-deploy plugin always excludes *.vdf from every depot (ALWAYS_EXCLUDED = ["*.log", "*.vdf"] in plugins/steam-deploy/src/vdf-generator.ts), and no option can turn that off. extraExclusions only adds patterns, and includeDebugSymbols / debugBranch only affect the debug-symbol patterns.

That makes it impossible to ship a game that bundles its Steam Input configuration. Steamworks' Custom Configuration (Bundled with game) expects the action manifest to be a .vdf inside the depot at an install-relative path. The default controller configurations named in the manifest's configurations block are .vdf files too. With this exclusion they are silently left out of the upload, and the game runs with no Steam Input manifest.

This reaches users of game-ci/steam-deploy@v3. Since the v3 tag moved to the thin wrapper around this CLI (game-ci/steam-deploy#92, tag now at 87f8a36), a workflow that shipped these files on the previous v3 (50f6b29) stops shipping them, with no change on its side.

How to reproduce

  • Stage a build directory containing, for example, game, steam/game_actions.vdf and steam/config_deck.vdf.

  • Deploy it with game-ci/steam-deploy@v3 (depot1Path pointing at that directory), or with game-ci deploy steam directly.

  • Install the build from Steam. steam/game_actions.vdf and steam/config_deck.vdf are missing and everything else is there.

  • Expected behavior

Every file in the staged depot is uploaded, apart from the build files the CLI writes for steamcmd itself. As far as I can tell, the blanket *.vdf rule exists because manifest.vdf and depot_build_<id>.vdf are written into the build directory, which is also the content root (steam-deploy-command.ts, around lines 191 and 201). Either of these would keep those out without dropping a game's own files:

  1. Exclude only the generated names (manifest.vdf, depot_build_*.vdf) instead of *.vdf.
  2. Write the generated files outside the content root, as game-ci/steam-deploy did before game-ci/steam-deploy#92 (a separate work directory).

An opt-out option would also work, but a default that drops a game's own files without saying so seems worth changing.

Additional details

  • CLI at 9e2a4a2 (latest at the time of writing, as installed by cliVersion: latest); action at v3 = 87f8a36.
  • Related, in the action's repo: game-ci/steam-deploy#100 (an unset releaseBranch now publishes to default). That is the other half of the same tag move and is not about this exclusion.
  • We worked around it by driving steamcmd directly with our own app/depot build files, so this is not urgent for us. It seemed worth reporting for other games that bundle Steam Input configs.
Lingua principale
TypeScript
Stelle
20
Fork
11
Merge medio
5h 28m
PR unite (30g)
4

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di game-ci/cli

Tutte le issue di game-ci/cli

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.