diff --git a/ReadMe.md b/ReadMe.md index cd96bf3..e9f54b0 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -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 * PsIni module installed (library for reading INI files easily) * 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)** diff --git a/doc/Release.md b/doc/Release.md index 7f7fe9e..cf6f9fb 100644 --- a/doc/Release.md +++ b/doc/Release.md @@ -1,3 +1,69 @@ -# Release Scripts +# Release Script -TODO \ No newline at end of file +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