UEScripts/doc/Release.md
2022-04-19 16:42:11 +01:00

72 lines
2.7 KiB
Markdown

# Release Script
The release script `ue-release.ps1` takes previously packaged builds (see
[Packaging Script](./Package.md)) and uploads them to publishing services;
currently Itch.io and Steam.
You will need to install the [Steamworks SDK](https://partner.steamgames.com/doc/sdk)
to release on Steam, and the [Itch Butler tool](https://itch.io/docs/butler/) to
release on Itch.
This script uses configuration stored in [`packageconfig.json`](./PackageConfig.md).
```
ue-release.ps1 [-version:ver|-latest] -variants:v1,v2 -services:steam,itch [-src:sourcefolder] [-dryrun]
-version:ver : Version to release; must have been packaged already
-latest : Instead of an explicit version, release one identified in project settings
-variants:var1,var2 : Name of variants to release. Omit to use DefaultVariants
-services:s1,s2 : Name of services to release to. Can omit and rely on ReleaseTo
setting of variant in packageconfig.json
-src : Source folder (current folder if omitted), must contain packageconfig.json
-dryrun : Don't perform any actual actions, just report what would happen
-help : Print this help
```
## Uploading all builds at once
The only mandatory argument is the version number, which you can specify explicitly,
or use the `-latest` option to take the version from project settings. With only that argument,
the script will process all the [default variants](./PackageConfig.md#defaultvariants)
for this project and release any which have [release settings](./PackageConfig.md#defaultvariants).
This allows you to push all your builds for a given version at once.
## Uploading more selectively
Alternatively you can limit the packages you upload using the `-variants` and
`-services` arguments; if supplied, only matching variants and publishing services
will be processed.
## Authentication
This script will call the Itch `butler` tool and/or the Steam `steamcmd` tool.
These have their own authentication; you will be prompted as needed but if you
want to guarantee no prompts during running, you should log in to the services
on the command line beforehand.
### Logging in to Itch
```
butler login
```
Your Itch authentication will be stored for future use after logging in.
### Logging in to Steam
```
steamcmd +login user_name
```
The `SteamLogin` setting in [`packageconfig.json`](./PackageConfig.md)
should be the same as the username you log in with here.
## When builds go live
There is some variation on when players can see your uploaded packages:
* **Itch**: Packages go live as soon as Itch finishes processing them
* **Steam**: Packages sit in the release queue until you explicitly release them
via the Steamworks web interface