Script tool for automation of Steam build files for tasks like {T77348}
This script automates creation of the Steam files: download of the archives,
extraction of the archives, preparation of the build scripts (VDF files), actual
building of the Steam game files.
Requirements
============
* MacOS machine - Tested on Catalina 10.15.6. Extracting contents from the DMG
archive did not work Windows nor on Linux using 7-zip. All DMG archives tested
failed to be extracted. As such only MacOS is known to work.
* Steam SDK downloaded from SteamWorks - The `steamcmd` is used to generate the
Steam game files. The path to the `steamcmd` is what is actually needed.
* SteamWorks credentials - Needed to log in using `steamcmd`.
* Login to SteamWorks with the `steamcmd` from the command-line at least once -
Needded to ensure the user is properly logged in. On a new machine the user
will have to go through two-factor authentication.
* App ID and Depot IDs - Needed to create the VDF files.
* Python 3.x - 3.7 was tested.
* Base URL - for downloading the archives.
Reviewed By: Jeroen Bakker
Differential Revision: https://developer.blender.org/D8429
70 lines
3.0 KiB
Markdown
70 lines
3.0 KiB
Markdown
Creating Steam builds for Blender
|
|
=================================
|
|
|
|
This script automates creation of the Steam files: download of the archives,
|
|
extraction of the archives, preparation of the build scripts (VDF files), actual
|
|
building of the Steam game files.
|
|
|
|
Requirements
|
|
============
|
|
|
|
* MacOS machine - Tested on Catalina 10.15.6. Extracting contents from the DMG
|
|
archive did not work Windows nor on Linux using 7-zip. All DMG archives tested
|
|
failed to be extracted. As such only MacOS is known to work.
|
|
* Steam SDK downloaded from SteamWorks - The `steamcmd` is used to generate the
|
|
Steam game files. The path to the `steamcmd` is what is actually needed.
|
|
* SteamWorks credentials - Needed to log in using `steamcmd`.
|
|
* Login to SteamWorks with the `steamcmd` from the command-line at least once -
|
|
Needded to ensure the user is properly logged in. On a new machine the user
|
|
will have to go through two-factor authentication.
|
|
* App ID and Depot IDs - Needed to create the VDF files.
|
|
* Python 3.x - 3.7 was tested.
|
|
* Base URL - for downloading the archives.
|
|
|
|
Usage
|
|
=====
|
|
|
|
```bash
|
|
$ export STEAMUSER=SteamUserName
|
|
$ export STEAMPW=SteamUserPW
|
|
$ export BASEURL=https://download.blender.org/release/Blender2.83/
|
|
$ export VERSION=2.83.3
|
|
$ export APPID=appidnr
|
|
$ export WINID=winidnr
|
|
$ export LINID=linuxidnr
|
|
$ export MACOSID=macosidnr
|
|
|
|
# log in to SteamWorks from command-line at least once
|
|
|
|
$ ../sdk/tools/ContentBuilder/builder_osx/steamcmd +login $STEAMUSER $STEAMPW
|
|
|
|
# once that has been done we can now actually start our tool
|
|
|
|
$ python3.7 create_steam_builds.py --baseurl $BASEURL --version $VERSION --appid $APPID --winid $WINID --linuxid $LINID --macosid $MACOSID --steamuser $STEAMUSER --steampw $STEAMPW --steamcmd ../sdk/tools/ContentBuilder/builder_osx/steamcmd
|
|
```
|
|
|
|
All arguments in the above example are required.
|
|
|
|
At the start the tool will login using `steamcmd`. This is necessary to let the
|
|
Steam SDK update itself if necessary.
|
|
|
|
There are a few optional arguments:
|
|
|
|
* `--dryrun`: If set building the game files will not actually happen. A set of
|
|
log files and a preview manifest per depot will be created in the output folder.
|
|
This can be used to double-check everything works as expected.
|
|
* `--skipdl`: If set will skip downloading of the archives. The tool expects the
|
|
archives to already exist in the correct content location.
|
|
* `--skipextract`: If set will skip extraction of all archives. The tool expects
|
|
the archives to already have been correctly extracted in the content location.
|
|
|
|
Run the tool with `-h` for detailed information on each argument.
|
|
|
|
The content and output folders are generated through appending the version
|
|
without dots to the words `content` and `output` respectively, e.g. `content2833`
|
|
and `output2833`. These folders are created next to the tool.
|
|
|
|
From all `.template` files the Steam build scripts will be generated also in the
|
|
same directory as the tool. The files will have the extension `.vdf`.
|
|
|
|
In case of errors the tool will have a non-zero return code. |