Skip to content

Stage Steam builds instead of setting a branch live from CI#440

Merged
charneykaye merged 1 commit into
mainfrom
fix/steam-stage-build-no-setlive
Jul 14, 2026
Merged

Stage Steam builds instead of setting a branch live from CI#440
charneykaye merged 1 commit into
mainfrom
fix/steam-stage-build-no-setlive

Conversation

@charneykaye

Copy link
Copy Markdown
Contributor

What happened

The v0.2.3 Steam upload worked. It logged in, scanned content, signed the install script, and uploaded all three depots:

Depot Result
4963031 (Windows) Success — manifest created
4963032 (macOS) Success — 64 chunks uploaded
4963033 (Linux) Success — 180 chunks uploaded

Then it failed on the very last step:

ERROR! Failed to commit build for AppID 4963030 : Failure

The content and credentials were fine — only the commit was refused.

Why

The generated app_build.vdf carried SetLive "beta", and all three depots reported "no baseline manifest" — this is the app's first build ever. A new Steamworks app has only the default branch; beta must be created by hand in the partner portal, and SetLive against a branch that doesn't exist fails the commit after every depot has already uploaded.

(The other candidate: the build account may upload builds but lack the separate Steamworks permission to set them live. CI can see neither, and steamcmd reports both as bare "Failure".)

Fix

Automatic runs now stage the build. It is committed and appears in Steamworks → Builds; a human sets it live from the portal.

This is the right default independently of the bug — a git tag should not be able to put a build in front of players on its own, which is the same reason this job already sits behind the steam-release approval gate, and it is what the workflow's own header always recommended for sign-off runs. Setting a branch live is now an explicit workflow_dispatch.

steamcmd renders a failed commit as bare "Failure" and exit 6, so the step now explains itself: which of the two causes applies, how to create the branch, and that staging is the way around it. On success it prints the exact Steamworks path to set a staged build live.

🤖 Generated with Claude Code

The v0.2.3 Steam upload worked: it logged in, scanned content, signed the install
script, and uploaded all three depots — Windows manifest created, macOS 64 chunks,
Linux 180 chunks. It then failed on the very last step:

    ERROR! Failed to commit build for AppID 4963030 : Failure

The content and the credentials were fine; only the commit was refused. The
generated app_build.vdf carried SetLive "beta", and all three depots reported "no
baseline manifest" — this is the app's first build ever. A new Steamworks app has
only the 'default' branch; 'beta' has to be created by hand in the partner portal,
and SetLive against a branch that does not exist fails the commit AFTER every
depot has already uploaded. (The other candidate is that the build account may
upload builds but lacks the separate permission to set them live. CI can see
neither, and steamcmd reports both as "Failure".)

Automatic runs now STAGE the build: it is committed and appears in Steamworks →
Builds, and a human sets it live from the portal. This is the right default
independently of the bug — a git tag should not be able to put a build in front of
players on its own, which is the same reason the job already sits behind the
steam-release approval gate — and it is what this workflow's own header always
recommended for sign-off runs. Setting a branch live is now an explicit
workflow_dispatch.

steamcmd renders a failed commit as bare "Failure" and exit 6, so the step now
explains it: which of the two causes applies, how to create the branch, and that
staging is the way around it. It also prints the exact Steamworks path to set a
staged build live on success.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@charneykaye charneykaye merged commit 2825a35 into main Jul 14, 2026
16 checks passed
@charneykaye charneykaye deleted the fix/steam-stage-build-no-setlive branch July 14, 2026 14:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant