Skip to main content

Promote Build to Steam

Last updated on July 1, 2026

Overview

Promote Build to Steam is a native publishing action inside ADT Hub that lets game studios push approved builds from ADT directly to Steam pre-release branches — without leaving the platform or running any external upload tooling. A studio admin connects a dedicated Steam publishing account to ADT once, configures per-game settings once, and from that point any team member with the right access can trigger a promotion from Hub.

This feature is for PC game studios that manage their build pipeline in ADT and ship on Steam. It closes the gap between "build approved in ADT" and "build live on Steam" — a gap that today requires a separate, manual workflow with no in-platform visibility.

Why Promote Build to Steam Exists

Studios using ADT for build management still face a disconnected final step when shipping to Steam. After a build is approved in ADT, developers must switch to Steamworks tooling, configure upload scripts, manage Steam publishing credentials outside of any secure system, and check the Steam backend manually to confirm the upload worked.

This process is fragile in several ways:

  • Steam publishing credentials (the dedicated publishing account username and password) are stored informally — in text files, shared password managers, or local config files — because there is no integration between ADT and a credential store.
  • There is no way to see whether a Steam upload succeeded from within ADT. Confirmation requires leaving the platform and checking Steam directly.
  • Recovering from a failed upload requires debugging opaque SteamCMD error messages with no context tied back to the specific build that was being promoted.
  • Less technical team members — QA leads, producers — cannot safely run promotions without coaching, because the process requires Steamworks expertise.

Promote Build to Steam makes ADT the single workflow for the entire journey from build upload to Steam delivery.

How Promote Build to Steam Works

The feature is built around a local execution model. ADT Hub (the desktop app) acts as the orchestrator on the developer's machine. When a promotion is triggered, Hub retrieves configuration and credentials from ADT, generates the required Steam config files, and invokes SteamCMD on the developer's local machine. SteamCMD uploads the depot directly to Steamworks. Hub captures the upload log and the Steam BuildID and reports them back to ADT for the audit trail.

ADT itself acts as three things: a configuration provider, a credential vault, and an audit layer. No build artifacts transit through ADT's servers at upload time. There are no cloud workers involved in the upload.

ADT Cloud (config + credentials + audit trail)

│ Hub retrieves config + credentials at runtime

ADT Hub (local orchestrator on developer's machine)

│ Hub generates VDF files, invokes SteamCMD

SteamCMD (installed on developer's local machine)

│ Uploads depot directly to Steamworks

Steam (build registered, BuildID returned)

│ Hub captures BuildID + log, reports to ADT

ADT Cloud (promotion record updated, audit trail written)

Configuration model

Configuration is split across two layers:

Namespace level (studio-wide, set once by a studio admin in ADT Web) A studio admin connects a dedicated Steam publishing bot account — entering the username and password. ADT stores these credentials in a secure credential store. No team member needs a local copy, and credentials are never written to disk on any machine. ADT does not store a TOTP shared secret; instead, whoever triggers a promotion is prompted to enter the current Steam Guard one-time code immediately before the upload starts — the code is used once and never persisted.

Game level (per game, set once by a studio admin in ADT Web) For each game, a studio admin configures the Steam App ID, depot-to-folder mappings (which local folder each Steam depot should receive), and track-to-branch mappings (which ADT channel+platform track maps to which Steam pre-release branch). Default file exclusion patterns can also be set here and will be pre-filled on every promotion form for the game.

Hub level (per developer, set once in ADT Hub) Each developer who promotes builds configures the path to their local SteamCMD installation in Hub Settings. Hub validates that the SteamCMD executable exists at that path before any promotion can proceed.

Promotion entry points

There are three places in Hub where a promotion can be triggered, each suited to a different workflow:

  • Tracks tab (channel level) — The developer clicks the context menu (⋯) on a track card, opens the Build submenu, and selects "Promote to Steam." The head build of that track is pre-filled automatically. This is the fastest path for a developer already working within a specific channel.

  • Versions menu (game level) — The developer browses to a version, drills down to its individual build cards, and selects "Promote to Steam" from a specific build card. Both the version and the build are pre-filled from that context.

  • Promotions menu (game level) — The developer opens the Promotions menu and clicks "Promote to Steam," then selects the build manually. This is useful for one-off promotions or promoting a build that is not tied to a specific track.

All three entry points lead to the same three-step confirmation form.

The promotion form

Regardless of entry point, every promotion follows the same three-step form:

  • Step 1 — Build and Target: Review the pre-filled build, App ID, and depot. Select or confirm the Steam branch (editable per-promotion, defaults to the track's mapped branch).
  • Step 2 — Details: Add a build description, internal notes (stored in ADT only, never sent to Steam), file exclusions, and review the build size.
  • Step 3 — Review and Confirm: Summary of all fields. Submitting queues the promotion and directs the developer to the Promotions menu.

Live progress and status

Once a promotion is submitted, Hub invokes SteamCMD and streams the live log to the Promotions menu in real time. The developer can watch the upload progress without leaving ADT. The upload continues as long as Hub is running on the local machine.

When the upload finishes, Hub parses the SteamCMD log for the BuildID. The result is written to the ADT promotion record and is visible to the whole team.

StatusWhat it means
In Progress (blue)SteamCMD is running the upload
Succeeded (green)SteamCMD completed successfully — Steam BuildID shown (or "—" if it could not be parsed from the log)
Failed (red)Upload failed — plain-language reason shown, retry available

When status is Succeeded but BuildID shows "—", the upload completed normally but the BuildID could not be extracted from the log. Verify the BuildID directly in the Steamworks partner portal.

Promotion history

Every promotion attempt is recorded in the ADT Promotions menu for the game — across all channels, visible to the whole team. Each record includes the build, channel, Steam branch, who triggered it, when it ran, the final status, and a downloadable log. Studio admins can use this as an audit trail for all Steam deployments.

Key Benefits

  • Single workflow from build approval to Steam delivery — no context-switching to external tooling after a build passes QA in ADT.
  • Centralized, secure credential management — Steam publishing credentials are stored in ADT's secure credential store and never held locally by any developer. The whole team benefits from a single connection set up once by a studio admin.
  • Real-time visibility for the whole team — promotion status, live upload log, and the resulting Steam BuildID are all visible in ADT to anyone with appropriate access, not just the person who triggered the upload.
  • Plain-language failure messages and one-click retry — when an upload fails, ADT explains what went wrong in plain language and lets the developer retry from the same screen without re-filling the form.
  • Stale build protection — Hub warns when the locally downloaded build is behind the latest in the track, so developers do not accidentally promote an outdated build.

Limitations and Considerations

Promoting from macOS Hub is not supported in the current release. SteamCMD promotion is supported only when ADT Hub is running on Windows. Hub on macOS does not expose the "Promote to Steam" button, retry, or new promotion actions — macOS Hub users can view promotion history in the Promotions menu but cannot trigger uploads. This limitation applies to the machine running Hub, not to the build target: Windows, macOS, and Linux builds can all be promoted, but only from a Windows machine running Hub.

Beta branches only. The current release supports promotion to Steam pre-release (beta) branches only. Pushing a build to the Steam default branch — which delivers it to all Steam users — requires manual confirmation through the Steam Mobile App by Valve policy. ADT cannot bypass this requirement.

SteamCMD must be installed on the promoting machine. The upload runs on the developer's local machine using SteamCMD, which the developer must install separately. ADT validates the SteamCMD path in Hub Settings before any promotion can proceed, but the installation itself is a prerequisite each developer must fulfill.

The build must be downloaded locally before promoting. Hub promotes the locally downloaded copy of the build. If a build has not been downloaded to the machine, Hub will surface this as a missing prerequisite and surface a download action.

Only one promotion per project at a time. Only one active promotion per project is supported. Additional requests are queued and processed after the active promotion reaches a terminal state (Succeeded or Failed).

Windows, macOS, and Linux build targets only. The "Promote to Steam" action is available only for tracks and builds targeting Windows, macOS, or Linux. It is not available for console builds (PS5, Xbox), mobile builds (iOS, Android), or Windows Server builds.

Hub must stay open during the upload. The upload runs through SteamCMD on the local machine, which Hub orchestrates. If Hub is force-closed during an active promotion, the promotion is marked Failed or Interrupted on next launch with a retry option. The upload does not continue after Hub is closed.

Supported Platforms

PlatformSupported
WindowsYes
macOSYes
LinuxYes
Console (PS5, Xbox)No — not applicable to Steam
Mobile (iOS, Android)No — not applicable to Steam
Windows ServerNo

This feature is part of the Build Distribution pillar and is accessed through ADT Hub (the desktop app) and ADT Web (the web dashboard). It does not require any SDK integration.