steamship 0.8.1

Upload to Steam, and know it worked.

steamship runs Valve's own steamcmd with your own build scripts, and adds what steamcmd leaves out. It works with any engine: anything that ends in a folder of files per platform can be shipped.

steamcmd

Pinned and verified

Fetched from Valve's signed manifest at a version fixed in each release, every package checked by SHA-256, kept from updating itself, and checked again after every run.

The steamcmd it pins
upload

A clear result

Read from the exit code and Valve's build log, never from console output: the BuildID, or the reason it failed. Scripts that would upload the wrong thing are refused before anything is sent.

Uploading
login

No passwords kept

You log in once. What you type goes straight to steamcmd, never logged or saved, and nothing steamship prints or writes contains your login token.

Uploading from CI

Install

brew tap aureliolo/steamship https://github.com/Aureliolo/steamship
brew install aureliolo/steamship/steamship

macOS and Linux. Homebrew installs the release's archive only if it matches the SHA-256 the release is signed over.

scoop bucket add aureliolo https://github.com/Aureliolo/steamship
scoop install aureliolo/steamship

Windows, with this repository as a bucket. Scoop installs the release's archive only if it matches the SHA-256 the release is signed over.

winget install Aureliolo.steamship

Windows. winget installs the release's archive only if it matches the SHA-256 in its manifest.

# Debian and Ubuntu
curl -fLO https://github.com/Aureliolo/steamship/releases/download/v0.8.1/steamship_0.8.1-1_amd64.deb
sudo apt install ./steamship_0.8.1-1_amd64.deb
# Fedora
sudo dnf install https://github.com/Aureliolo/steamship/releases/download/v0.8.1/steamship-0.8.1-1.x86_64.rpm

x86-64 Linux: steamship v0.8.1, with the 32-bit C libraries Valve's steamcmd for Linux loads, a man page per command and tab completion.

# the release's archive, in seconds
cargo binstall steamship
# or built from source
cargo install --locked steamship

Anywhere Rust runs.

curl -fLO https://github.com/Aureliolo/steamship/releases/download/v0.8.1/steamship-0.8.1-x86_64-linux-musl.tar.gz
wget https://github.com/Aureliolo/steamship/releases/download/v0.8.1/steamship-0.8.1-x86_64-linux-musl.tar.gz
gh release download v0.8.1 --repo Aureliolo/steamship --pattern '*linux-musl*'

Any x86-64 Linux, whatever its glibc: steamship v0.8.1, with curl, wget or the GitHub command line. Check it as Install shows, then put steamship on your PATH; steamcmd needs the 32-bit C libraries Install names. Download it directly.

curl -fLO https://github.com/Aureliolo/steamship/releases/download/v0.8.1/steamship-0.8.1-aarch64-apple-darwin.tar.gz
gh release download v0.8.1 --repo Aureliolo/steamship --pattern '*aarch64-apple*'

Apple silicon: steamship v0.8.1, with curl or the GitHub command line; on an Intel Mac, aarch64 becomes x86_64. Check it as Install shows, then put steamship on your PATH. Download it directly.

curl.exe -fLO https://github.com/Aureliolo/steamship/releases/download/v0.8.1/steamship-0.8.1-x86_64-pc-windows-msvc.zip
gh release download v0.8.1 --repo Aureliolo/steamship --pattern '*x86_64-pc-windows*'

Windows x86-64: steamship v0.8.1, with the curl Windows ships or the GitHub command line; on Windows on Arm, x86_64 becomes aarch64. Check it as Install shows, then put steamship.exe on your PATH. Download it directly.

First upload

# once
steamship login
# is the login still good?
steamship status
# offline, no login
steamship check steam/app_build.vdf
# a rehearsal: builds everything and sends nothing to Steam
steamship upload steam/app_build.vdf --version 1.4.0 --preview
# the real thing
steamship upload steam/app_build.vdf --version 1.4.0

steam/app_build.vdf and its depot scripts are Valve's own format, the same ones the Steamworks SDK's ContentBuilder uses. If you already upload with steamcmd, you already have them.

MIT or Apache-2.0, at your option. Not affiliated with or endorsed by Valve; Steam and Steamworks are trademarks of Valve Corporation.