Skip to content

Commit fd9a570

Browse files
upload-steam@v2.0.0 (#12)
- Simplified authentication inputs. Auth now requires SteamGuard mobile app to authorize workflow - removed `totp` - removed `shared_secret` - removed `config` - removed `ssfn` - removed `ssfn_name` - fixed regex matching for excluded filters for burst and debug symbols
1 parent b7a9e90 commit fd9a570

12 files changed

Lines changed: 22353 additions & 20376 deletions

File tree

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
name: Update Release Tags
2+
on:
3+
push:
4+
tags: ['*']
5+
workflow_dispatch:
6+
jobs:
7+
update-release-tags:
8+
runs-on: ubuntu-latest
9+
permissions:
10+
contents: write
11+
steps:
12+
- uses: actions/checkout@v4
13+
with:
14+
fetch-depth: 0
15+
fetch-tags: true
16+
- uses: RageAgainstThePixel/update-action-release-tags@v1

README.md

Lines changed: 12 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@ A GitHub Action for uploading an [app build](https://partner.steamgames.com/doc/
44

55
## How to use
66

7-
This action assumes you are registered as a [partner](https://partner.steamgames.com/) with Steam.
7+
- This action assumes you are registered as a [partner](https://partner.steamgames.com/) with Steam.
8+
- This action assumes you have MFA enabled on your Steam account, and the Steam Mobile app installed on your phone.
9+
- This action also assumes some secrets to be set in your repository:
810

9-
This action also assumes some secrets to be set in your repository:
11+
> [!IMPORTANT]
12+
> You will be prompted to accept the login from the Steam Mobile app on your phone when the action runs the first time.
13+
> Subsequent runs will attempt to use the cached login credentials, but may from time to time require you to accept the login again.
1014
11-
* `STEAM_USERNAME`: The username of your steamworks build account
12-
* `STEAM_PASSWORD`: The password for the account
13-
* `STEAM_SHARED_SECRET`: Optional, a SteamGuard shared secret ([setup steps](#shared-secret))
14-
* `STEAM_CONFIG`: Optional, a steam account config.vdf encoded as base64 string ([setup steps](#config))
15-
* `STEAM_SSFN`: Optional, a steam ssfn file encoded as base64 string. Optional, with `STEAM_CONFIG` setup.
16-
* `STEAM_SSFN_NAME`: Optional, the name of the `STEAM_SSFN` file that was encoded. Required with `STEAM_SSFN`.
15+
- `STEAM_USERNAME`: The username of your steamworks build account
16+
- `STEAM_PASSWORD`: The password for the account
1717

1818
### workflow
1919

@@ -26,7 +26,7 @@ steps:
2626
id: upload
2727
with:
2828
username: ${{ secrets.STEAM_USERNAME }}
29-
config: ${{ secrets.STEAM_CONFIG }}
29+
password: ${{ secrets.STEAM_PASSWORD }}
3030
app_id: 1000
3131
description: 'Your build description here'
3232
content_root: '${{ github.workspace }}/Build'
@@ -47,12 +47,7 @@ steps:
4747
| Name | Description | Required |
4848
| ---- | ----------- | -------- |
4949
| `username` | A Steamworks [build account](https://partner.steamgames.com/doc/sdk/uploading#Build_Account) name with the "Edit App Metadata" and "Publish App Changes To Steam" permissions granted. | true |
50-
| `password` | The password for the account. | if `config` is not provided. |
51-
| `totp` | A temporary one time pass code (totp) from SteamGuard. | if `shared_secret` and `config` are not provided |
52-
| `shared_secret` | The [shared secret](#shared-secret) from SteamGuard's two-factor authentication. | if `totp` and `config` are not provided. |
53-
| `config` | Steam [config.vdf](#config) encoded as base64 string. | if `password`, `totp` and `shared_secret` are not provided. |
54-
| `ssfn` | Steam SSFN file encoded as base64 string. This is an optional addition to `config`. | Optional, if `config` is provided. |
55-
| `ssfn_name` | The name of the encoded `ssfn` file | if `ssfn` is provided. |
50+
| `password` | The password for the account. | true |
5651
| `app_id` | The app id of the game. | if `app_build` or `workshop_item` are not provided. |
5752
| `workshop_item_id` | The `publishedfileid`. To create a new item `app_id` must be set and `workshop_item_id` be set to 0. To update an existing item, both `app_id` and `workshop_item_id` must be set. | for workshop item uploads and if `workshop_item` is not provided. |
5853
| `description` | Either the build description or workshop item description. If an `app_build` or `workshop_item` file is provided, this will be ignored. | false |
@@ -66,55 +61,9 @@ steps:
6661

6762
### outputs
6863

69-
* `manifest`: The path to the resulting build manifest.
64+
- `manifest`: The path to the resulting build manifest.
7065

7166
## Multi-Factor Authentication Setup
7267

7368
Deploying to Steam requires using Multi-Factor Authentication (MFA).
74-
This action requires at least one of these authentication methods are set:
75-
76-
* `totp`: A temporary one time pass code (totp) from SteamGuard Authenticator app.
77-
* `config`: Steam [config.vdf](#config) encoded as base64 string.
78-
* `shared_secret`: The [shared secret](#shared-secret) from SteamGuard's two-factor authentication.
79-
80-
### Temporary One Time Pass Code
81-
82-
Can be obtained from SteamGuard Authenticator app. Usually is temporary and resets after a set amount of time.
83-
84-
### Config
85-
86-
To setup steamcmd for continuous integration, or just on a machine or VM that will get re-imaged frequently, you'll need to include the config file that contains your login token. Follow these steps so that your initial login token is properly saved:
87-
88-
* Download [steamworks sdk](https://partner.steamgames.com/doc/gettingstarted)
89-
* Unzip steamworks in your desired location
90-
* Open in explorer or finder
91-
* Navigate to `sdk/tools/ContentBuilder/builder` (or osx/linux if on non-windows)
92-
* Copy the path to the steamcmd executable (`steamcmd.exe` for windows, `steamcmd.sh` for osx/linux)
93-
* In a new terminal run `<sdk>/steamcmd.exe +login <username>`
94-
* If prompted, enter your password and the SteamGuard totp
95-
* Type `info`, and you should see your account listed as connected
96-
* Type `quit`
97-
* The folder where you ran `steamcmd` should now contain new content with config directory.
98-
* `<sdk>/config/config.vdf`
99-
* If you're unable to locate this file, it can also be located in your steam installation directory
100-
* windows: `C:/Program Files(x86)/Steam/config/config.vdf`
101-
* linux: `~/home/<user>/Steam/config/config.vdf`
102-
* osx: `~/Library/Application\ Support/Steam/config/config.vdf`
103-
* Encode the file to base64 string
104-
* In a new `bash` terminal run `base64 <sdk>/config/config.vdf > encoded_config.txt`
105-
* Copy the contents of the encoded text file and paste it in `STEAM_CONFIG` secret in github actions.
106-
107-
> [!NOTE]
108-
> If you change your account's security settings or get a new code sent to your email, you'll need to follow these steps again.
109-
110-
### Shared Secret
111-
112-
> [!WARNING]
113-
> Obtaining a shared secret from the SteamGuard Authenticator app is challenging and complicated.
114-
> It is recommended to use the [config](#config) setup.
115-
> This shared secret should not be checked into source control or shared with anyone!
116-
117-
> [!IMPORTANT]
118-
> If you've already got SteamGuard setup for your account and you remove it, you'll have to wait 3 days before being able to publish a live build.
119-
120-
* Detailed instructions can be found [here](https://gist.github.com/mathielo/8367e464baa73941a075bae4dd5eed90)
69+
This action requires the user to accept the SteamGuard login from the Steam Mobile app on their phone.

action.yml

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,8 @@ inputs:
88
description: 'A steamworks build account username.'
99
required: true
1010
password:
11-
description: 'Steam password. Required if `config` is not provided.'
12-
required: false
13-
totp:
14-
description: 'A temporary one time pass code (totp) from SteamGuard. Required if `shared_secret` and `config` are not provided.'
15-
required: false
16-
shared_secret:
17-
description: 'The shared secret for SteamGuard''s two-factor authentication. Required if `totp` and `config` are not provided.'
18-
required: false
19-
config:
20-
description: 'Steam config.vdf file contents as base64 encoded string. Required if `password`, `totp` and `shared_secret` are not provided.'
21-
required: false
22-
ssfn:
23-
description: 'Steam SSFN file encoded as base64 string. Optional if `config` is provided.'
24-
required: false
25-
ssfn_name:
26-
description: 'Name of the encoded SSFN file. Required if `ssfn` is provided.'
27-
required: false
11+
description: 'Steam password.'
12+
required: true
2813
app_id:
2914
description: 'Steam App ID. Required if `app_build` or `workshop_item` are not provided.'
3015
required: false

0 commit comments

Comments
 (0)