Release documentation

This commit is contained in:
Steve Streeting 2020-10-08 15:21:08 +01:00
parent eb1a74a1d2
commit cb9074c216
2 changed files with 70 additions and 2 deletions

View File

@ -20,6 +20,8 @@ automation tools assume P4, which can be inconvenient).
* Almost everything is compatible with Win10 built-in PS 5.1 but 7 is better, and platform independent * Almost everything is compatible with Win10 built-in PS 5.1 but 7 is better, and platform independent
* PsIni module installed (library for reading INI files easily) * PsIni module installed (library for reading INI files easily)
* Run `Install-Module PsIni` in a Powershell console * Run `Install-Module PsIni` in a Powershell console
* Itch's [`butler` tool](https://itch.io/docs/butler/) if you wish to release to Itch.io
* The [Steamworks SDK](https://partner.steamgames.com/doc/sdk) if you wish to release on Steam
If these tools are useful, please consider :heart: **[Supporting my work on Patreon!](https://www.patreon.com/stevestreeting)** If these tools are useful, please consider :heart: **[Supporting my work on Patreon!](https://www.patreon.com/stevestreeting)**

View File

@ -1,3 +1,69 @@
# Release Scripts # Release Script
TODO The release script `ue4-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).
```
ue4-release.ps1 -version:ver -variants:v1,v2 -services:steam,itch [-src:sourcefolder] [-dryrun]
-version:ver : Version to release; must have been packaged already
-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. 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