Stage Steam builds instead of setting a branch live from CI#440
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What happened
The v0.2.3 Steam upload worked. It logged in, scanned content, signed the install script, and uploaded all three depots:
Then it failed on the very last step:
The content and credentials were fine — only the commit was refused.
Why
The generated
app_build.vdfcarriedSetLive "beta", and all three depots reported "no baseline manifest" — this is the app's first build ever. A new Steamworks app has only thedefaultbranch;betamust be created by hand in the partner portal, andSetLiveagainst 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-releaseapproval gate, and it is what the workflow's own header always recommended for sign-off runs. Setting a branch live is now an explicitworkflow_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