Skip to content

Latest commit

 

History

History
50 lines (40 loc) · 2.2 KB

RELEASING.md

File metadata and controls

50 lines (40 loc) · 2.2 KB

Releasing Thetawave to Steam

We currently do not use Github actions/CD to publish Thetawave to Steam because Steam wants to use one time passwords in a bit of an awkward way. So one of our local machines will act as the build server. All of these commands should be run from the root of the repository.

$ ls steam_out/
assets  linux  windows

Generally the goal is to get a single directory with all build artifacts for all platforms, and use a Dockerized steampipe image to automate that deployment as much as possible. That Docker command is interactive and will require entering the password and a MFA one time code.

  1. Build the game on all platforms
./scripts/build_thetawave_for_steam.sh steam_out/
  1. Download game audio and image assets.

See the Assets section of the CONTRIBUTING.md for information about this CLI, or run python3 ./asset_manager.py --help

python3 ./asset_manager.py --profile <OPTIONAL_AWS_PROFILE_NAME> --no-dryrun download
cp -R assets steam_out/
  1. Upload artifacts to steam. This will: update the steam sdk, authenticate our special "builder" account (permissioned only to push builds for the Thetawave game), and run a script that will package all assets to their respective depots to upload to Steam. This script is tailored to our specific app and depot configuration, so changing those on Steamworks will likely require also changing the deployment script. The vdf is mostly just a data file invoked by the sdk
docker run --net=host \
    -e STEAMUSER="thetawave_builder" \
    -e VDFAPPBUILD="thetawave_build.vdf" \
    -e STEAMAPPBUILDESC="Automated CD Upload" \
    -v "$(pwd)/steam_out:/home/steam/steamsdk/sdk/tools/ContentBuilder/content" \
    -v "$(pwd)/steam_build:/home/steam/steamsdk/sdk/tools/ContentBuilder/scripts" \
    -it \
    --rm "cm2network/steampipe:contentbuilder"
  1. There will be a new build on the Steamworks website. Set branch of that build to deploy it. Ideally deploy and test the beta branch before releasing on the default branch.