Giter VIP home page Giter VIP logo

steam-deploy's People

Contributors

bilalakil avatar davidmfinol avatar edgarmagalhaes avatar eyzi avatar mikz avatar osreboot avatar phelioz avatar rdlaitila avatar renovate-bot avatar samanpwbb avatar shichen85 avatar soundasleep avatar tom-leys avatar webbertakken avatar werwolv avatar wilg avatar zeroparticle avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

steam-deploy's Issues

Update the setup-steamcmd at the latest version

Context

The action CyberAndrii/setup-steamcmd that you use, has been updated; the last version fixes a problem with rootless runners.

Suggested solution

Update the the action at the latest version

Support Steam totp

Context

Basic Steam security, where a user has an MFA code sent over email, currently works.
However, some users may upgrade their Steam account to require MFA codes from a mobile authenticator.
The CyberAndrii/steam-totp action can also generate this MFA code, and we should support being able to accept this.

Suggested solution

Add mfaCode as an input. If mfaCode is input into the action, configVdf, ssfnFileName, and ssfnFileContents should all be ignored.

Considered alternatives

Could call it totp instead of mfaCode. I'm not sure which name would be clearer.

Additional details

See for more context: #4

2FA auth fails on Mac only

Bug description

Using 'macos-latest' and game-ci/[email protected], I get a Steam Guard code:FAILED (Account Logon Denied) error when attempting to use this action in my workflow.

The action works as expected on ubuntu-latest.

How to reproduce

      - name: Steam - Deploy Mac
        if: matrix.os == 'macos-latest'
        uses: game-ci/[email protected]
        with:
          username: ${{ secrets.STEAM_USERNAME }}
          password: ${{ secrets.STEAM_PASSWORD }}
          configVdf: ${{ secrets.STEAM_CONFIG_VDF}}
          ssfnFileName: ${{ secrets.STEAM_SSFN_FILE_NAME }}
          ssfnFileContents: ${{ secrets.STEAM_SSFN_FILE_CONTENTS }}
          appId: {myappid}
          buildDescription: ${{ github.ref }}
          rootPath: electron/out
          depot1Path: wilderplace-darwin-x64
          releaseBranch: prerelease

Expected behavior

Upload succeeds.

I think the issue is caused by the fact that STEAM_HOME is not where macos expects to find the 2fa credentials: https://github.com/game-ci/steam-deploy/blob/main/action.yml#L79, which is used here: https://github.com/game-ci/steam-deploy/blob/main/steam_deploy.sh#L83-L100

STEAM_HOME comes from the directory where steamcmd is installed: https://github.com/CyberAndrii/setup-steamcmd/blob/master/src/index.js#L54

But on my mac, I think steamcmd expects credentials to be in Library/Application Support/Steam/.

Enhance readme for macOS users

Nice project, really helpful. ๐Ÿ™Œ

Just a suggestion regarding macOS users.
The config.vdf file is located at ~/Library/Application Support/Steam/config/config.vdf.

Add custom rules to depot

Depot file it's not just folder with a game, it's have much more important rules like FileProperties or FileExclusion how can I add a such options to generated depot?

How to properly generate a Base64 encoded file on Windows

in the instructions, it says to use the cat command, but that command does not exist as part of the windows cmd.

It CAN be used from powershell, but it seems it's a bit different, since using the supplied code causes it to fail, it works if you remove the "| base64" parameter, but then the file it generates is no longer base64.

I tried writing a powershell script to encode both files and output, which seemed to do what was needed, but I am still unable to authenticate to steam, so I wonder if something is wrong with the files being generated.

$config = Get-Content 'config/config.vdf'
$ssfn = Get-Content 'ssfn<your_hidden_ssfn>'

$ConfigBytes = [System.Text.Encoding]::Unicode.GetBytes($config)
$ssfnBytes = [System.Text.Encoding]::Unicode.GetBytes($ssfn)

$EncodedConfig =[Convert]::ToBase64String($ConfigBytes)
$Encodedssfn =[Convert]::ToBase64String($ssfnBytes)

$EncodedConfig | Out-File  -FilePath 'config_base64.txt' -Encoding ASCII -Width 50
$Encodedssfn | Out-File -FilePath 'ssfn_base64.txt' -Encoding ASCII -Width 50

If possible, could you try this, and see if the encoded files it creates for you are formatted correctly?

Or suggest a better method, if there is one.

Thanks!

Builds are empty

Here's my current config:

name: Build and Release
on: push

jobs:
  build:
    name: Build and Deploy
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false

    steps:
      - name: Checkout Repository
        uses: actions/checkout@master

      - name: Build for Standalone Windows
        id: build_windows
        uses: game-ci/unity-builder@v2
        env:
          UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
          # UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
          # UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
          # UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }}
        with:
          targetPlatform: StandaloneWindows
          buildName: Game

      - uses: actions/upload-artifact@v2
        with:
          name: build
          path: build

      - name: Setup steamcmd
        uses: CyberAndrii/setup-steamcmd@v1

      - name: Generate Steam MFA
        id: generate_steam_mfa
        uses: CyberAndrii/steam-totp@v1
        with:
          shared_secret: ${{ secrets.STEAM_SHARED_SECRET }}

      - name: Deploy to Steam
        uses: webbertakken/[email protected]
        with:
          username: ${{ secrets.STEAM_USERNAME }}
          password: ${{ secrets.STEAM_PASSWORD }}
          mfaCode:  ${{ steps.generate_steam_mfa.outputs.code }}
          appId: ${{ secrets.STEAM_APP_ID }}
          buildDescription: ${{ steps.build_windows.outputs.buildVersion }}
          rootPath: build
          depot1Path: StandaloneWindows
          releaseBranch: default

Everything seems to work up until it uploads, then I get the following error:

uilding file mapping...
Scanning content
Uploading content
[2021-06-16 06:23:16]: ERROR! Failed to commit build for AppID *** : Failure

#################################
#        Current status         #
#################################

Show the current state of the app on this client.
/entrypoint.sh: 24: /steps/5_execute_steamcmd.sh: /home/steam/steamcmd/steamcmd.sh +app_status ***: not found

Show the current Steamworks configuration for this game (depots, launch options, etc.). ***
/entrypoint.sh: 28: /steps/5_execute_steamcmd.sh: /home/steam/steamcmd/steamcmd.sh +app_info_print manifest.vdf: not found

Show the current user configuration for this game (current language, install directory, etc.)
/entrypoint.sh: 32: /steps/5_execute_steamcmd.sh: /home/steam/steamcmd/steamcmd.sh +app_config_print ***: not found

#################################
#             Errors            #
#################################

Listing current folder and rootpath

total 84K
drwxr-xr-x 15 1001  121 4.0K Jun 16 06:22 .
drwxr-xr-x  6 root root 4.0K Jun 16 06:22 ..
drwxr-xr-x  9 1001  121 4.0K Jun 16 06:17 .git
-rw-r--r--  1 1001  121 2.1K Jun 16 06:17 .gitattributes
drwxr-xr-x  3 1001  121 4.0K Jun 16 06:17 .github
-rw-r--r--  1 1001  121 1.9K Jun 16 06:17 .gitignore
drwxr-xr-x  2 1001  121 4.0K Jun 16 06:17 .vscode
drwxr-xr-x 11 1001  121 4.0K Jun 16 06:21 Assets
drwxr-xr-x  2 root root 4.0K Jun 16 06:22 BuildOutput
drwxr-xr-x 13 1001  121 4.0K Jun 16 06:21 Library
drwxr-xr-x  2 root root 4.0K Jun 16 06:21 Logs
drwxr-xr-x  2 1001  121 4.0K Jun 16 06:17 Originals
drwxr-xr-x  2 1001  121 4.0K Jun 16 06:17 Packages
drwxr-xr-x  3 1001  121 4.0K Jun 16 06:21 ProjectSettings
drwxr-xr-x  2 root root 4.0K Jun 16 06:21 UserSettings
drwxr-xr-x  3 root root 4.0K Jun 16 06:21 build
-rw-r--r--  1 root root  213 Jun 16 06:22 depot1666371.vdf
-rw-r--r--  1 root root  222 Jun 16 06:22 manifest.vdf
-rw-r--r--  1 1001  121  889 Jun 16 06:17 omnisharp.json
-rw-r--r--  1 1001  121    7 Jun 16 06:17 steam_appid.txt
drwxr-xr-x  3 1001  121 4.0K Jun 16 06:22 steamcmd

total 12K
drwxr-xr-x  3 root root 4.0K Jun 16 06:21 .
drwxr-xr-x 15 1001  121 4.0K Jun 16 06:22 ..
drwxr-xr-x  4 root root 4.0K Jun 16 06:21 StandaloneWindows

So a couple of things to note:

  • The build artifact is there. I can download it and it has the files, and it runs
  • It seems to be finding the root folder and it matches the build
  • Builds are showing up in my Steam dashboard, but their sizes are 0.0B

Any idea what may be going wrong?

Allow use of cached steam sdk instead of downloading a new one to prevent account banning

Context

Steam bans accounts that download things too frequently.

Suggested solution

We already have the SDK cached for other uses in our build process. It would be convenient if we could cache steamcmd as well and pass in the path instead of having the build action download it anew from Steam for each deployment.

Additional details

working deployment: https://github.com/DFHack/dfhack/actions/runs/5569914759/jobs/10173599292
non-working deployment (next day): https://github.com/DFHack/dfhack/actions/runs/5581984477/jobs/10200761612

happy message that greets me when logging into the deployment account on the steamworks partner site afterwards:
image

Build for depot XXXX failed: Failure

Bug description

I have a workflow that builds a Unity project to Steam-friendly platforms (Windows64, Windows, Linux64) and then uses this action to deploy those builds to a Steam game. The steam-deploy action fails in the "Uploading Build" step, and the most-relevant message I can find in the log is:

Building file mapping...
Scanning content...........
[2021-10-16 04:26:31]: ERROR! Build for depot 1792551 failed : Failure

Full logs attached.
SteamDeployActionLog.zip

How to reproduce

Confirm that the manual "upload a ZIP through the Steam partner site" process works with appropriate depots & builds.
Use a Github Actions workflow file to create builds & store them as artifacts for appropriate platforms.
Use this Github Actions workflow file to retrieve those artifacts & upload them to Steam.

Note that this does contain numerous repository secrets.

name: Deploy To Steam
on:
  workflow_dispatch: {}


jobs:
  deploy_to_steam:
    name: Deploy to Steam
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
    steps:
      - name: Download artifact from another workflow
        uses: dawidd6/action-download-artifact@v2
        with:
          github_token: ${{secrets.GITHUB_TOKEN}}
          workflow: BuildAndDeployToSteam.yml
          workflow_conclusion: completed

      # From original workflow where build + deploy was in one worfklow but separate jobs.
      # - name: Download all workflow run artifacts
      #   id: artifact_download
      #   uses: actions/download-artifact@v2
      #   # with:
      #   #   path:  # If not used, defaults to download to $(pwd)


      - name: Display structure of downloaded files
        run: ls -R  

      - name: Setup steamcmd
        uses: CyberAndrii/setup-steamcmd@v1

      - name: Generate auth code
        id: steam_mfa_generate
        uses: CyberAndrii/steam-totp@v1
        with:
          shared_secret: ${{ secrets.STEAM_SHARED_SECRET }}

      # This uses the syntax used by the steam-deploy action
      - name: Display structure of files to upload
        run: ls $(pwd)/ArborSculptura-StandaloneWindows64/
      
      - name: Steam - Deploy
        uses: game-ci/[email protected]
        with:
          username: ${{ secrets.STEAM_USERNAME }}
          password: ${{ secrets.STEAM_PASSWORD }}
          mfaCode:  ${{ steps.steam_mfa_generate.outputs.code }}
          appId: ${{ secrets.STEAM_APP_ID }}
          # From combined build + deploy workflow:
          # buildDescription: ${{ steps.buildStep.outputs.buildVersion }}
          buildDescription: v0.0.1
          # rootPath:  # pwd is prepended by this action anyway, so no need to use
          depot1Path: ArborSculptura-StandaloneWindows64/*
          depot2Path: ArborSculptura-StandaloneLinux64/*
          depot3Path: ArborSculptura-StandaloneWindows/*
          releaseBranch: prerelease
          localContentServer: LocalContentServer

The workflow errors out & doesn't upload anything to Steam as the error occurs in the first depot that it attempts to build.

Expected behavior

The action would upload files found in specified directories to Steam with no issue.

Additional details

While the Steam app ID is in the repo secrets, it's not really secret as it (or at least its depots) show up in the logs. I can confirm that the depot numbers are correct & match the numbers shown on the Steam partner website.
The 3 artifact ZIP files are what I used to confirm the manual ZIP upload works, so I don't believe there's any issue with the build or artifact storage process.
I'm using a dedicated build account on Steam, but from what I can tell there's no issue with its login or its permissions/scope. Using the dedicated build account works fine for manual ZIP uploads.

This looks like an error from steamcmd but I have no clue why.

I tried searching through the Steamworks group discussions on Steam about this error and found various things like symlinks, relative paths, permissions issues, and incorrect depot numbers all causing problems - but they're all fixable. I'm fairly certain that none of those are causing the problem here.

The only part of the workflow that I don't really know anything about is the localContentServer property - I've copied values from the example on the readme of this steam-deploy repo. Hopefully that's fine?

I don't really have any other ideas for what is preventing the uploads - any advice would be hugely appreciated.

Unable to resolve action `game-ci/steam-deploy@v1`, unable to find version `v1`

Bug description

I see v1.0 has been tagged recently, so I expected to be able to reference the action as described in the README using game-ci/steam-deploy@v1, however as the title suggests this fails to be found.

How to reproduce

Use a workflow that has a step with:

      - uses: game-ci/steam-deploy@v1

Expected behavior

It should resolve to the commit tagged with v1.0.

No permission to access /usr/bin/tar on subsequent deploys

Bug description
When deploying to steam from linux the action fails unless run from a fresh environment

How to reproduce

  • Install self-hosted runner in a WSL2 ubuntu environment with action version 1.3.0
  • Deploy a linux build to steam see my deploy action here
  • Trigger another build

Instead I get this log:

Downloading ...
Extracting ...
/usr/bin/tar xz --warning=no-unknown-keyword --overwrite -C steamcmd -f /home/runner/runner0/_work/_temp/steamcmd_linux.tar.gz
/usr/bin/tar: linux32/steamerrorreporter: Cannot open: Permission denied
/usr/bin/tar: linux32/libstdc++.so.6: Cannot open: Permission denied
/usr/bin/tar: linux32/crashhandler.so: Cannot open: Permission denied
/usr/bin/tar: Exiting with failure status due to previous errors
Error: Error: The process '/usr/bin/tar' failed with exit code 2

Expected behavior

The subsequent build succeeds

Additional details

The only workaround for this I have found is to destroy the entire _work directory for the runner and trigger the build & deploy again. Again, any deploy made after a successful deploy will fail due to a permission error with tar; I imagine it's a file locking problem.

I thought this may have been caused by me not having my runners running under a user named "runner" but I have since corrected that since it seems one of the scripts in this action expects that and I'm still running into this problem. Could WSL2 be causing a problem here?

I have another set of runners on the same machine running under windows and they have no problems. I also have an m1 mac mini running a couple self hosted runners and they also have no issues.

Setup a Steam App Id for tests

In order to get .github/workflows/main.yml to validate any changes to this action, we should setup a proper Steam Build Account that can upload to a Steam App Id that would be used exclusively for testing this action.

Exclude Unity's *_DoNotShip directory when uploading to Steam

Context

Unity builds include a folder which you're not supposed to publish to players, maybe with debugging symbols or what not. The folder is suffixed with "_DoNotShip".

A straightforward game.ci pipeline which builds and then deploys will result in that folder being deployed to Steam.

I think it'd be good for this action to automatically exclude it as it's something that, AFAIK, should never be included and can be handled automatically (just like the "*.pdb" exclusion that's already hardcoded in here).

Suggested solution

I think using Steamwork's FileExclusion thingo that's very briefly described here is the way to go but I personally couldn't get it working - dunno what I'm doing wrong. Maybe more eyes on the problem can figure it out?

Two exclusions I tried (separately) were:

  "FileExclusion" "./$currentDepotPath/${currentDepotPath}_BurstDebugInformation_DoNotShip*"
  "FileExclusion" "${currentDepotPath}_BurstDebugInformation_DoNotShip*"

This evaluated to:

  "FileExclusion" "./StandaloneWindows64/StandaloneWindows64_BurstDebugInformation_DoNotShip*"
  "FileExclusion" "StandaloneWindows64_BurstDebugInformation_DoNotShip*"

and this exactly matches the name from what I see after downloading the game in Steam... Not sure why it's not working.

Considered alternatives

If we can't get FileExclusion working then we could go more hacky and move the folder out, do the upload, and then replace it?

Additional details

Nothing further to add.

Use Docker image instead of composite action

Context

Currently this action uses another action to install steamcmd, when a docker image could theoretically be used instead.

Suggested solution

Would like to see an approach like in #46

Considered alternatives

#46 could be good, but we haven't heard back from the person who raised the PR, and we have heard of some issues during testing.

We may want someone else to lead this change.

Additional details

I think completing this change would require version 2.0.0 for this action.

Anytime it gets to steam-deploy step it fails with unable to find image

Bug description
It runs /usr/bin/docker run --name aaf5bf14427a5284475bf02669bf9afc85d_b0d92c --label 446aaf --workdir /github/workspace...

Then it errors with:

Unable to find image '446aaf:5bf14427a5284475bf02669bf9afc85d' locally
docker: Error response from daemon: pull access denied for 446aaf, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'.

How to reproduce

Just run on latest build

Expected behavior

Deploy succeeds

Additional details

I tried standard script.

Clearer message for when there's a typo in the key

Context

In #23 it took us a while to find out there was simply a typo in the key.

Suggested solution

An error message with a descriptive text about the key missing would be great. Perhaps we should do this for all parameters that are required, or expected to be passed in.

Considered alternatives

None so far.

Additional details

None so far.

Password: FAILED (Invalid Password)

Bug description

I was having some issues authenticating with Steam Guard with v1 of this action, so I recently upgraded to v3 (I was told doing so might fix the issue). That issue is gone now, but now in the "Test login" step, I get this error:

Run game-ci/steam-deploy@v3
/usr/bin/docker run --name c9a4a5b62624b2b5b644789d0f425748d4fd04_84366b --label c9a4a5 --workdir /github/workspace --rm -e "INPUT_USERNAME" -e "INPUT_CONFIGVDF" -e "INPUT_APPID" -e "INPUT_BUILDDESCRIPTION" -e "INPUT_ROOTPATH" -e "INPUT_DEPOT1PATH" -e "INPUT_DEPOT2PATH" -e "INPUT_RELEASEBRANCH" -e "INPUT_TOTP" -e "INPUT_FIRSTDEPOTIDOVERRIDE" -e "INPUT_DEPOT3PATH" -e "INPUT_DEPOT4PATH" -e "INPUT_DEPOT5PATH" -e "INPUT_DEPOT6PATH" -e "INPUT_DEPOT7PATH" -e "INPUT_DEPOT8PATH" -e "INPUT_DEPOT9PATH" -e "steam_username" -e "steam_password" -e "steam_totp" -e "configVdf" -e "ssfnFileName" -e "ssfnFileContents" -e "appId" -e "firstDepotIdOverride" -e "buildDescription" -e "rootPath" -e "depot1Path" -e "depot2Path" -e "depot3Path" -e "depot4Path" -e "depot5Path" -e "depot6Path" -e "depot7Path" -e "depot8Path" -e "depot9Path" -e "releaseBranch" -e "HOME" -e "GITHUB_JOB" -e "GITHUB_REF" -e "GITHUB_SHA" -e "GITHUB_REPOSITORY" -e "GITHUB_REPOSITORY_OWNER" -e "GITHUB_REPOSITORY_OWNER_ID" -e "GITHUB_RUN_ID" -e "GITHUB_RUN_NUMBER" -e "GITHUB_RETENTION_DAYS" -e "GITHUB_RUN_ATTEMPT" -e "GITHUB_REPOSITORY_ID" -e "GITHUB_ACTOR_ID" -e "GITHUB_ACTOR" -e "GITHUB_TRIGGERING_ACTOR" -e "GITHUB_WORKFLOW" -e "GITHUB_HEAD_REF" -e "GITHUB_BASE_REF" -e "GITHUB_EVENT_NAME" -e "GITHUB_SERVER_URL" -e "GITHUB_API_URL" -e "GITHUB_GRAPHQL_URL" -e "GITHUB_REF_NAME" -e "GITHUB_REF_PROTECTED" -e "GITHUB_REF_TYPE" -e "GITHUB_WORKFLOW_REF" -e "GITHUB_WORKFLOW_SHA" -e "GITHUB_WORKSPACE" -e "GITHUB_ACTION" -e "GITHUB_EVENT_PATH" -e "GITHUB_ACTION_REPOSITORY" -e "GITHUB_ACTION_REF" -e "GITHUB_PATH" -e "GITHUB_ENV" -e "GITHUB_STEP_SUMMARY" -e "GITHUB_STATE" -e "GITHUB_OUTPUT" -e "RUNNER_OS" -e "RUNNER_ARCH" -e "RUNNER_NAME" -e "RUNNER_ENVIRONMENT" -e "RUNNER_TOOL_CACHE" -e "RUNNER_TEMP" -e "RUNNER_WORKSPACE" -e "ACTIONS_RUNTIME_URL" -e "ACTIONS_RUNTIME_TOKEN" -e "ACTIONS_CACHE_URL" -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" -v "/home/runner/work/_temp/_runner_file_commands":"/github/file_commands" -v "/home/runner/work/DINO-MERCS-unity/DINO-MERCS-unity":"/github/workspace" c9a4a5:b62624b2b5b644789d0f425748d4fd04

#################################
#   Generating Depot Manifests  #
#################################


Adding depot1827641.vdf ...

"DepotBuildConfig"
{
  "DepotID" "1827641"
  "FileMapping"
  {
    "LocalPath" "./StandaloneWindows64/*"
    "DepotPath" "."
    "recursive" "1"
  }
  "FileExclusion" "*.pdb"
  "FileExclusion" "**/*_BurstDebugInformation_DoNotShip*"
  "FileExclusion" "**/*_BackUpThisFolder_ButDontShipItWithYourGame*"
}


Adding depot1827642.vdf ...

"DepotBuildConfig"
{
  "DepotID" "1827642"
  "FileMapping"
  {
    "LocalPath" "./StandaloneOSX/*"
    "DepotPath" "."
    "recursive" "1"
  }
  "FileExclusion" "*.pdb"
  "FileExclusion" "**/*_BurstDebugInformation_DoNotShip*"
  "FileExclusion" "**/*_BackUpThisFolder_ButDontShipItWithYourGame*"
}


#################################
#    Generating App Manifest    #
#################################

"appbuild"
{
  "appid" "***"
  "desc" "v2.0.11"
  "buildoutput" "BuildOutput"
  "contentroot" "/github/workspace/build"
  "setlive" "prerelease"

  "depots"
  {    "1827641" "depot1827641.vdf"    "1827642" "depot1827642.vdf"  }
}


#################################
#    Copying SteamGuard Files   #
#################################

Steam is installed in: /github/home/Steam
Copying /github/home/Steam/config/config.vdf...
Finished Copying SteamGuard Files!


#################################
#        Test login             #
#################################

ln: failed to create symbolic link '/github/home/.steam/root': No such file or directory
ln: failed to create symbolic link '/github/home/.steam/steam': No such file or directory
Redirecting stderr to '/github/home/Steam/logs/stderr.txt'
ILocalize::AddFile() failed to load file "public/steambootstrapper_english.txt".
[  0%] Checking for available update...
[----] Downloading update (0 of 59,540 KB)...
[  0%] Downloading update (0 of 59,540 KB)...
[  0%] Downloading update (0 of 59,540 KB)...
[  0%] Downloading update (3,304 of 59,540 KB)...
[  5%] Downloading update (7,013 of 59,540 KB)...
[ 11%] Downloading update (9,776 of 59,540 KB)...
[ 16%] Downloading update ([12](https://github.com/timothymalcham/DINO-MERCS-unity/actions/runs/5623993320/job/15260382456#step:6:13),284 of 59,540 KB)...
[ 20%] Downloading update (14,806 of 59,540 KB)...
[ 24%] Downloading update (17,3[13](https://github.com/timothymalcham/DINO-MERCS-unity/actions/runs/5623993320/job/15260382456#step:6:14) of 59,540 KB)...
[ 29%] Downloading update (20,067 of 59,540 KB)...
[ 33%] Downloading update (22,574 of 59,540 KB)...
[ 37%] Downloading update (25,094 of 59,540 KB)...
[ 42%] Downloading update (27,596 of 59,540 KB)...
[ 46%] Downloading update (30,350 of 59,540 KB)...
[ 50%] Downloading update (32,858 of 59,540 KB)...
[ 55%] Downloading update (35,369 of 59,540 KB)...
[ 59%] Downloading update (37,879 of 59,540 KB)...
[ 63%] Downloading update (40,509 of 59,540 KB)...
[ 68%] Downloading update (42,277 of 59,540 KB)...
[ 71%] Downloading update (43,537 of 59,540 KB)...
[ 73%] Downloading update (44,779 of 59,540 KB)...
[ 75%] Downloading update (46,034 of 59,540 KB)...
[ 77%] Downloading update (47,416 of 59,540 KB)...
[ 79%] Downloading update (48,669 of 59,540 KB)...
[ 81%] Downloading update (49,934 of 59,540 KB)...
[ 83%] Downloading update (51,320 of 59,540 KB)...
[ 86%] Downloading update (52,578 of 59,540 KB)...
[ 88%] Downloading update (53,831 of 59,540 KB)...
[ 90%] Downloading update (55,204 of 59,540 KB)...
[ 92%] Downloading update (56,456 of 59,540 KB)...
[ 94%] Downloading update (57,7[15](https://github.com/timothymalcham/DINO-MERCS-unity/actions/runs/5623993320/job/15260382456#step:6:16) of 59,540 KB)...
[ 96%] Downloading update (58,949 of 59,540 KB)...
[ 99%] Downloading update (59,540 of 59,540 KB)...
[100%] Download Complete.
[----] Applying update...
[----] Extracting package...
[----] Extracting package...
[----] Extracting package...
[----] Extracting package...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Cleaning up...
[----] Update complete, launching...
Redirecting stderr to '/github/home/Steam/logs/stderr.txt'
[  0%] Checking for available updates...
[----] Verifying installation...
[  0%] Downloading update...
[  0%] Checking for available updates...
[----] Download complete.
[----] Extracting package...
[----] Extracting package...
[----] Extracting package...
[----] Extracting package...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Cleaning up...
[----] Update complete, launching Steamcmd...
Redirecting stderr to '/github/home/Steam/logs/stderr.txt'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version [16](https://github.com/timothymalcham/DINO-MERCS-unity/actions/runs/5623993320/job/15260382456#step:6:17)8964[25](https://github.com/timothymalcham/DINO-MERCS-unity/actions/runs/5623993320/job/15260382456#step:6:26)[31](https://github.com/timothymalcham/DINO-MERCS-unity/actions/runs/5623993320/job/15260382456#step:6:32)
-- type 'quit' to exit --
Loading Steam API...dlmopen steamservice.so failed: steamservice.so: cannot open shared object file: No such file or directory
OK
Logging in user '***' to Steam Public...
password: FAILED (Invalid Password)

From what I understand, we no longer have to pass the STEAM_PASSWORD secret, so what would cause this error?

I've consistently gotten this error each time I run the workflow, resulting in the job failing and the build not making it to Steam.

Additional details

name: ๐Ÿš€ Build Game & Deploy to Steam ๐Ÿš€

on:
    push:
        tags:
            - 'v*'

jobs:
  buildForWindowsMac:
    name: Build for ${{ matrix.targetPlatform }}
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        targetPlatform:
          - StandaloneWindows64 # Build a Windows 64-bit standalone.
          - StandaloneOSX # Build a OSX intel 64-bit standalone.
    outputs:
      buildVersion: ${{ steps.build.outputs.buildVersion }}
    steps:
      - name: free disk space
        run: |
          sudo swapoff -a
          sudo rm -f /swapfile
          sudo apt clean
          docker rmi $(docker image ls -aq)
          df -h
         
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0
          lfs: true

      - uses: actions/cache@v3
        with:
          path: Library
          key:
            Library-${{ matrix.targetPlatform }}-${{ hashFiles('Assets/**', 'Packages/**',
            'ProjectSettings/**') }}
          restore-keys: |
            Library-${{ matrix.targetPlatform }}-
            Library-

      - uses: game-ci/unity-builder@v2
        id: build
        env:
          UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
        with:
          targetPlatform: ${{ matrix.targetPlatform }}
          versioning: Semantic
          
      - uses: actions/upload-artifact@v3
        with:
          name: Build-${{ matrix.targetPlatform }}
          path: build/${{ matrix.targetPlatform }}

  deployToSteam:
    needs: [buildForWindowsMac]
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repository
        uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: Download StandaloneWindows64 Artifact
        uses: actions/download-artifact@v3
        with:
          name: Build-StandaloneWindows64
          path: build/StandaloneWindows64

      - name: Download StandaloneOSX Artifact
        uses: actions/download-artifact@v3
        with:
          name: Build-StandaloneOSX
          path: build/StandaloneOSX

      - uses: game-ci/steam-deploy@v3
        with:
          username: ${{ secrets.STEAM_USERNAME }}
          configVdf: ${{ secrets.STEAM_CONFIG_VDF}}
          appId: ${{ secrets.STEAM_APP_ID }}
          buildDescription: v${{ needs.buildForWindowsMac.outputs.buildVersion }}
          rootPath: build
          depot1Path: StandaloneWindows64
          depot2Path: StandaloneOSX
          releaseBranch: prerelease

'File was unable to be removed' after running a second time on a self-hosted runner

Bug description

When I run the deploy action on a self-hosted runner for a second time, I get the following error when I run my editmode / playmode tests:
File was unable to be removed Error: EACCES: permission denied, unlink '/home/vmadmin/actions-runner/_work/SpaceControl/SpaceControl/BuildOutput/app_build_1759150.log'

How to reproduce

  • Run the deploy action on a self-hosted runner
  • Wait for completion
  • Run the action again, on the same runner

Expected behavior

The build succeeds

Additional details

I think it may be the same or related to #64.
Like that issue, I can circumvent the issue by manually going into the runner and deleting the related files.

Convert to typescript

Context

Currently, this action is implemented only with bash scripts in action.yml and steam_deploy.sh
Typescript is more robust and maintainable than bash scripts.

Suggested solution

Replace steam_deploy.sh with Typescript.

Considered alternatives

Could potentially also use a docker image, but I think even that would benefit from switching to typescript.

Additional details

Integrate 2 factor authentication (2FA) (Steam Guard)

Is your feature request related to a problem? Please describe.
Currently anyone using a Steam account that has Steam Guard 2-factor authentication enabled will automatically fail their workflow, because the email will arrive, but there is currently no way to provide the code to the action.

Describe the solution you'd like

  1. Using dedicated API keys.

Verdict: โŒ Not supported in current Steamworks SDK

  1. Removing steam guard (2FA) from builder account

Verdict: โŒ I asked both Steam Support and Steam Partner Support, and both came with the same answer: "Not being able to disable Steam Guard email level protection is Steams "deliberate design choice" and as such policy for any steam partner account"

  1. Following Steams advice by manually interacting with the workflow in order to authenticate each unique machine once.

Verdict: โœ” This could work! Since Github's machine signature seems to be very reliant, we would probably only have to authenticate Github Actoins once (per project per steam account).

Additional context

The reply from Steam:

For security reasons, we don't allow users in partner accounts to disable Steam Guard.

If your uploads are all being issued from a single machine (or virtual machine), you'll want to interactively log in with steamcmd one time and issue the set_steam_guard_code command with the code you were emailed. You can test immediately by issuing a logon and ensuring that it doesn't ask for a code. If it logs on, that machine should be able to log on in the future without having to resubmit a Steam Guard code.

You can also add an optional Steam Guard Code parameter that, if present, calls set_steam_guard_code prior to logging in and executing the build/depot scripts. That way, if steamcmd ever requires a Steam Guard code again (which can happen after an update), it will fail once, but you can just run it again with a Steam Guard code parameter and you won't need to log in interactively again.

Let me know if you have any other questions!

Best regards,
Redacted

I would say that in practise this should be very achievable.

Related: #3

Build fails on Loading Steam API

Bug description

In the uploading build step, steam API fails to load which causes cascading failures

How to reproduce

Push to master, and let action run. reports failed after a couple seconds.

Expected behavior

build is pushed to steam

Additional details

my action has a deploy to steam job with the build linux and windows jobs set as needs:

the builds complete normally, and then it starts the steam deploy as expected.

the deploy to steam task fails in the "upload build".

code:

Redirecting stderr to '/home/runner/Steam/logs/stderr.txt'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1654028333
-- type 'quit' to exit --
Loading Steam API...KeyValues Error: LoadFromBuffer: missing {   (current key: '***') in file InstallConfigStore [offset: 153]

src/tier1/KeyValues.cpp (2973) : Assertion Failed: Error while parsing text KeyValues for resource InstallConfigStore
KeyValues Error: LoadFromBuffer: missing {   (current key: '***') in file InstallConfigStore [offset: 153]

src/tier1/KeyValues.cpp (2973) : Assertion Failed: Error while parsing text KeyValues for resource InstallConfigStore
OK
KeyValues Error: LoadFromBuffer: missing {   (current key: '***') in file InstallConfigStore [offset: 153]

src/tier1/KeyValues.cpp (2973) : Assertion Failed: Error while parsing text KeyValues for resource InstallConfigStore
Logging in user '***' to Steam Public...KeyValues Error: LoadFromBuffer: missing {   (current key: '***') in file InstallConfigStore [offset: 153]

src/tier1/KeyValues.cpp (2973) : Assertion Failed: Error while parsing text KeyValues for resource InstallConfigStore
FAILED (Service Unavailable)

Error Log

Redirecting stderr to '/home/runner/Steam/logs/stderr.txt'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1654028333
-- type 'quit' to exit --
Loading Steam API...KeyValues Error: LoadFromBuffer: missing {   (current key: '***') in file InstallConfigStore [offset: 153]

src/tier1/KeyValues.cpp (2973) : Assertion Failed: Error while parsing text KeyValues for resource InstallConfigStore
KeyValues Error: LoadFromBuffer: missing {   (current key: '***') in file InstallConfigStore [offset: 153]

src/tier1/KeyValues.cpp (2973) : Assertion Failed: Error while parsing text KeyValues for resource InstallConfigStore
OK
KeyValues Error: LoadFromBuffer: missing {   (current key: '***') in file InstallConfigStore [offset: 153]

src/tier1/KeyValues.cpp (2973) : Assertion Failed: Error while parsing text KeyValues for resource InstallConfigStore
Logging in user '***' to Steam Public...KeyValues Error: LoadFromBuffer: missing {   (current key: '***') in file InstallConfigStore [offset: 153]

src/tier1/KeyValues.cpp (2973) : Assertion Failed: Error while parsing text KeyValues for resource InstallConfigStore
FAILED (Service Unavailable)

yml actions file

name: Build project

on: [push]

jobs:
  buildForWindows:
    name: Build for Windows
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0
          lfs: true
      - uses: actions/cache@v2
        with:
          path: Library
          key: Library-StandaloneWindows64
          restore-keys: Library-
      - uses: game-ci/[email protected]
        env:
          UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
        with:
          targetPlatform: StandaloneWindows64
          buildName: debris_field_PC
          versioning: Semantic
      - uses: actions/upload-artifact@v2
        with:
          name: debris_field_PC
          path: build/StandaloneWindows64

  buildForLinux:
    name: Build for Linux
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0
          lfs: true
      - uses: actions/cache@v2
        with:
          path: Library
          key: Library-StandaloneLinux64
          restore-keys: Library-
      - uses: game-ci/[email protected]
        env:
          UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
        with:
          targetPlatform: StandaloneLinux64
          buildName: debris_field_linux.x86_64
          versioning: Semantic
      - uses: actions/upload-artifact@v2
        with:
          name: debris_field_linux.x86_64
          path: build/StandaloneLinux64

  deployToSteam:
    needs: [buildForWindows, buildForLinux]
    runs-on: ubuntu-latest
    steps:
      - uses: game-ci/steam-deploy@v1
        with:
          username: ${{ secrets.STEAM_USERNAME }}
          password: ${{ secrets.STEAM_PASSWORD }}
          configVdf: ${{ secrets.STEAM_CONFIG_VDF}}
          ssfnFileName: ${{ secrets.STEAM_SSFN_FILE_NAME }}
          ssfnFileContents: ${{ secrets.STEAM_SSFN_FILE_CONTENTS }}
          appId: 651940
          buildDescription: Beta v3.1.0
          rootPath: build
          depot1Path: StandaloneWindows64
          depot3Path: StandaloneLinux64
          releaseBranch: beta

What version?

Hi, I am currently making my first action but I can't run it because I don't know what I should type in <version>, where can I find it?

MFA file approach does not work

For people already using this pipeline, it will probably continue to work since I don't see any new issues. However, for people new to this pipeline like me, I don't think the MFA file method works anymore. I think Valve has changed some things regarding SteamCMD and the Steam app itself. Here is my experience:

I am using PopOS which is based off Ubuntu 22.04. I run through the readme steps:

  • I install SteamCMD
  • I make a builder account with the two permissions and invite it to my organization
  • I use SteamCMD to login with this builder account. I enter the MFA code that is emailed to me.
  • config.vdf does not appear in the steamcmd folder; instead it shows up at Steam/config/config.vdf. No big deal, I make the base64 and move on.
  • SSFN file does not show up in the steamcmd folder either. In fact, it is no where to be found at all, even in hidden files. The only ssfn file I find is in my steam root, which was created two years ago when I presumably installed Steam for my personal account. I try using this file anyway and it does not work.

I figure this must be something with Linux, so I hop on to my Windows machine. My Windows machine has pretty much nothing on it, not even Steam. I repeat the steps:

  • I install SteamCMD
  • I use SteamCMD to login with the same builder account I made earlier. I enter the MFA code that is emailed to me.
  • config.vdf does not appear in the steamcmd folder; instead it shows up at steamcmd/config/config.vdf (since I don't have Steam installed, the file is created here instead of Steam/config/ like on Linux)
  • SSFN file does not show up in the steamcmd folder either. I recall that on Linux it shows up in Steam root, but I don't have Steam installed on this machine.
  • Install Steam App and login using the builder account, hoping to spawn an SSFN file.
  • No ssfn file found, not even in Steam root. I searched my entire PC, including hidden files, and no ssfn file. Just for a Hail Mary I run through the SteamCMD stuff again, hoping to spawn a ssfn file. No luck, no ssfn file anywhere on my PC.

In summary, it seems the MFA file approach for this pipeline is deprecated in its current state for new users. Valve has clearly changed something with SteamCMD, given that the config.vdf file is in a new location and a new SSFN file isn't being created at all.

Deployment fails during upload - libcurl.so: cannot open shared object file: No such file or directory

Bug description

Steam deployment fails during build upload.
Setup steam account and deployment pipe as per documentation and double-checked the github secrets.

  deployToSteam:
    runs-on: ubuntu-latest
    needs: [ build ]
    steps:
      - name: Checkout Repository
        uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - name: Download StandaloneWindows64 Artifact
        uses: actions/download-artifact@v2
        with:
          name: Build-StandaloneWindows64
          path: build/StandaloneWindows64
      - name: Get Version
        id: versioning
        uses: paulhatch/[email protected]
        with:
          format: "${major}.${minor}.${patch}"
      - uses: game-ci/steam-deploy@v1
        with:
          username: ${{ secrets.STEAM_USERNAME }}
          password: ${{ secrets.STEAM_PASSWORD }}
          configVdf: ${{ secrets.STEAM_CONFIG_VDF}}
          ssfnFileName: ${{ secrets.STEAM_SSFN_FILE_NAME }}
          ssfnFileContents: ${{ secrets.STEAM_SSFN_FILE_CONTENTS }}
          appId: ${{ secrets.STEAM_APP_ID }}
          buildDescription: v${{ steps.versioning.outputs.version }}
          rootPath: build
          depot1Path: StandaloneWindows64
          #depot2Path: StandaloneLinux64
          releaseBranch: experimental
Displaying error log

CAppInfoCacheReadFromDiskThread took 2 milliseconds to initialize
src/tier1/KeyValues.cpp (2967) : Assertion Failed: Error while parsing text KeyValues for resource InstallConfigStore
assert_20220128061834_11.dmp[2600]: Uploading dump (out-of-process)
/tmp/dumps/assert_20220128061834_11.dmp
assert_20220128061834_11.dmp[2600]: Finished uploading minidump (out-of-process): success = no
assert_20220128061834_11.dmp[2600]: error: libcurl.so: cannot open shared object file: No such file or directory
assert_20220128061834_11.dmp[2600]: file ''/tmp/dumps/assert_20220128061834_11.dmp'', upload no: ''libcurl.so: cannot open shared object file: No such file or directory''
src/tier1/KeyValues.cpp (2967) : Assertion Failed: Error while parsing text KeyValues for resource InstallConfigStore
src/tier1/KeyValues.cpp (2967) : Assertion Failed: Error while parsing text KeyValues for resource InstallConfigStore

How to reproduce

Unknown yet

Expected behavior

The steam deployment should run without errors after setting up per documentation

Additional details

Full Log
logs_11.zip

first line of 'run' command fails on Windows

Bug description

When attempting to run steam-deploy on a window-latest machine via a GitHub workflow, I get the following error:

Run chmod +x D:\a\_actions\game-ci\steam-deploy\v1.1.0/steam_deploy.sh
chmod: cannot access 'D:a_actionsgame-cisteam-deployv1.1.0/steam_deploy.sh': No such file or directory
Error: Process completed with exit code 1.

How to reproduce

I have a step in my workflow that looks like this, and it triggers the failure:

      - name: Steam - Deploy Windows
        if: matrix.os == 'windows-latest'
        uses: game-ci/[email protected]
        with:
          username: ${{ secrets.STEAM_USERNAME }}
          password: ${{ secrets.STEAM_PASSWORD }}
          configVdf: ${{ secrets.STEAM_CONFIG_VDF}}
          ssfnFileName: ${{ secrets.STEAM_SSFN_FILE_NAME }}
          ssfnFileContents: ${{ secrets.STEAM_SSFN_FILE_CONTENTS }}
          appId: {{secrets.APP_ID}}
          buildDescription: ${{ github.ref }}
          rootPath: electron/out
          depot1Path: wilderplace-win32-x64
          releaseBranch: prerelease

Expected behavior

I expect the steam_deploy script to run on windows.

Additional details

My game is built using Electron, and therefore I need to be running my build script on a Windows machine in order to build for Windows users. Ideally, I can use the same workflow to both build the Electron app, and upload it to Steam, all from a windows machine.

Running multiple times fails

Bug description

When running the action multiple times (with different app ids) it fails.

Downloading ...
Destination file path D:\a\_temp\steamcmd.zip already exists
Waiting 10 seconds before trying again
Destination file path D:\a\_temp\steamcmd.zip already exists
Waiting 18 seconds before trying again
Error: Error: Destination file path D:\a\_temp\steamcmd.zip already exists

If rm D:\a\_temp\steamcmd.zip is run after the first time, everything works.

How to reproduce

Run the action more than once.

Expected behavior

It doesn't try to re-download steamcmd and re-initialize everything.

Additional details

It fails because steamcmd.zip already exists.

Build successfully uploaded to Steam, but fails to be published to a branch, failing the action overall

Bug description

Build successfully uploaded to Steam, but fails to be published to a branch, failing the action overall. I was able to log into Steam, with the same account that was used in the workflow and set the build live (that was uploaded from this failing workflow) manually.

The logs sadly did not reveal much useful information:

2021-12-22T14:07:33.2501059Z [2021-12-22 14:07:28]: Starting AppID 1857400 build (flags 0x0).
2021-12-22T14:07:33.2503743Z [2021-12-22 14:07:28]: Building depot 1857401...
2021-12-22T14:07:33.2504840Z 
2021-12-22T14:07:33.2505767Z 
2021-12-22T14:07:33.2507322Z Building file mapping...
2021-12-22T14:07:54.2863297Z Scanning content........Warning: failed to init SDL thread priority manager: SDL not found
2021-12-22T14:07:56.9344344Z .
2021-12-22T14:07:56.9346465Z Uploading content
2021-12-22T14:07:56.9348984Z [2021-12-22 14:07:56]: ERROR! Failed to commit build for AppID 1857400 : Failure

How to reproduce

  • I'm using a Steam build account with only two permissions set: Edit App Metadata and Publish App Changes To Steam
  • I have an almost-blank Unity project. I guess using a fresh new project would work after you set a startup scene
  • GitHub Actions workflow used:
name: CI CD

on:
  push:
    branches:
      - main

jobs:
  testBuildUpload:
    name: Test, build then upload
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository (no LFS)
        uses: actions/checkout@v2

      - name: Create LFS file list
        run: git lfs ls-files -l | cut -d' ' -f1 | sort > .lfs-assets-id

      - name: Restore LFS cache
        uses: actions/cache@v2
        id: lfs-cache
        with:
          path: .git/lfs
          key: ${{ runner.os }}-lfs-${{ hashFiles('.lfs-assets-id') }}
          restore-keys: |
            ${{ runner.os }}-lfs-

      - name: LFS pull
        run: |
          git lfs pull
          git add .
          git reset --hard

      - name: Restore Unity cache
        uses: actions/cache@v2
        with:
          path: Library
          key: ${{ runner.os }}-Library-${{ hashFiles('Assets/**', 'Packages/**', 'ProjectSettings/**') }}
          restore-keys: |
            ${{ runner.os }}-Library-

      - name: Run tests
        uses: game-ci/unity-test-runner@v2
        env:
          UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}

      - name: Build project
        uses: game-ci/unity-builder@v2
        env:
          UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
        with:
          targetPlatform: StandaloneWindows64
          versioning: None

      - uses: game-ci/[email protected]
        with:
          username: ${{ secrets.STEAM_BUILD_ACCOUNT_USERNAME }}
          password: ${{ secrets.STEAM_BUILD_ACCOUNT_PASSWORD }}
          configVdf: ${{ secrets.STEAM_BUILD_ACCOUNT_CONFIG_VDF }}
          ssfnFileName: ${{ secrets.STEAM_BUILD_ACCOUNT_SSFN_FILE_NAME }}
          ssfnFileContents: ${{ secrets.STEAM_BUILD_ACCOUNT_SSFN_FILE_CONTENTS }}
          appId: 1857400
          buildDescription: github_actions-${{ github.sha }}
          rootPath: build
          depot1Path: StandaloneWindows64
          releaseBranch: default

Expected behavior

  • Build successfully uploaded to Steam depot (โœ”)
  • Build set live to default branch (โŒ)

Additional details

  • I have confirmed that the permissions for the build account are sufficient by logging into Steamworks with the account and setting the build live manually
  • Workflow logs: logs_27.zip

Steam deploy job consistently fails

Bug description

I'm using the example workflow from the getting started guide to build and upload my game to steam. The steam deploy job always fails, yet my build is always successfully uploaded to steam and playing the up-to-date game work just fine from the steam launcher.

I'm trying to understand why this happens. Is there anything I can do to improve my workflow definition? Caching is also not working for me, would that be related to the failure of this job?

Here's the output of the job:
Run game-ci/steam-deploy@v1
Run CyberAndrii/setup-steamcmd@v1
Downloading ...
Extracting ...
/usr/bin/tar xz --warning=no-unknown-keyword --overwrite -C steamcmd -f /home/runner/work/_temp/steamcmd_linux.tar.gz
Adding to the cache ...
Installing required dependencies ...
/usr/bin/apt-get --yes update
Reading package lists...
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
W: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied)
W: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)
/usr/bin/dpkg-query --show --showformat='${db:Status-Status}\n' lib32gcc-s1
'installed
'Failed to update lib32gcc-s1, using installed version. This is the intended behavior for a rootless user.
Updating ...
/opt/hostedtoolcache/steamcmd/latest/i386/steamcmd.sh +quit
Redirecting stderr to '/home/runner/Steam/logs/stderr.txt'
ILocalize::AddFile() failed to load file "public/steambootstrapper_english.txt".
[  0%] Checking for available update...
[----] Downloading update (0 of 57385 KB)...
[  0%] Downloading update (0 of 57385 KB)...
[  0%] Downloading update (0 of 57385 KB)...
[  0%] Downloading update (0 of 57385 KB)...
[  0%] Downloading update (0 of 57385 KB)...
[  0%] Downloading update (0 of 57385 KB)...
[  0%] Downloading update (2738 of 57385 KB)...
[  4%] Downloading update (6744 of 57385 KB)...
[ 11%] Downloading update (9238 of 57385 KB)...
[ 16%] Downloading update (1[17](https://github.com/timothymalcham/DINO-MERCS-unity/actions/runs/3642927755/jobs/6151020002#step:6:18)[18](https://github.com/timothymalcham/DINO-MERCS-unity/actions/runs/3642927755/jobs/6151020002#step:6:20) of 57385 KB)...
[ 20%] Downloading update (14411 of 57385 KB)...
[ 25%] Downloading update (16880 of 57385 KB)...
[ 29%] Downloading update ([19](https://github.com/timothymalcham/DINO-MERCS-unity/actions/runs/3642927755/jobs/6151020002#step:6:21)360 of 57385 KB)...
[ 33%] Downloading update (21836 of 57385 KB)...
[ 38%] Downloading update (24561 of 57385 KB)...
[ 42%] Downloading update (27029 of 57385 KB)...
[ 47%] Downloading update (29484 of 57385 KB)...
[ 51%] Downloading update (31947 of 57385 KB)...
[ 55%] Downloading update (34667 of 57385 KB)...
[ 60%] Downloading update (37116 of 57385 KB)...
[ 64%] Downloading update (39477 of 57385 KB)...
[ 68%] Downloading update (41243 of 57385 KB)...
[ 71%] Downloading update (42455 of 57385 KB)...
[ 73%] Downloading update (43693 of 57385 KB)...
[ 76%] Downloading update (45070 of 57385 KB)...
[ 78%] Downloading update (46304 of 57385 KB)...
[ 80%] Downloading update (47531 of 57385 KB)...
[ 82%] Downloading update (48872 of 57385 KB)...
[ 85%] Downloading update (50116 of 57385 KB)...
[ 87%] Downloading update (51343 of 57385 KB)...
[ 89%] Downloading update (52569 of 57385 KB)...
[ 91%] Downloading update (53885 of 57385 KB)...
[ 93%] Downloading update (55134 of 57385 KB)...
[ 96%] Downloading update (56361 of 57385 KB)...
[ 98%] Downloading update (57385 of 57385 KB)...
[100%] Download Complete.
[----] Applying update...
[----] Extracting package...
[----] Extracting package...
[----] Extracting package...
[----] Extracting package...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Cleaning up...
[----] Update complete, launching...
Redirecting stderr to '/home/runner/Steam/logs/stderr.txt'
/tmp/dumps insufficient permissions - delete and recreate
[  0%] Checking for available updates...
[----] Verifying installation...
[  0%] Downloading update...
[  0%] Checking for available updates...
[----] Download complete.
[----] Extracting package...
[----] Extracting package...
[----] Extracting package...
[----] Extracting package...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Cleaning up...
[----] Update complete, launching Steamcmd...
Redirecting stderr to '/home/runner/Steam/logs/stderr.txt'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1669935972
-- type 'quit' to exit --
Loading Steam API...OK
Done
Run chmod +x $GITHUB_ACTION_PATH/steam_deploy.sh

#################################
#   Generating Depot Manifests  #
#################################


Adding depot1827641.vdf ...

"DepotBuildConfig"
{
  "DepotID" "1827641"
  "FileMapping"
  {
    "LocalPath" "./StandaloneWindows64/*"
    "DepotPath" "."
    "recursive" "1"
  }
  "FileExclusion" "*.pdb"
  "FileExclusion" "**/*_BurstDebugInformation_DoNotShip*"
  "FileExclusion" "**/*_BackUpThisFolder_ButDontShipItWithYourGame*"
}


Adding depot1827642.vdf ...

"DepotBuildConfig"
{
  "DepotID" "1827642"
  "FileMapping"
  {
    "LocalPath" "./StandaloneOSX/*"
    "DepotPath" "."
    "recursive" "1"
  }
  "FileExclusion" "*.pdb"
  "FileExclusion" "**/*_BurstDebugInformation_DoNotShip*"
  "FileExclusion" "**/*_BackUpThisFolder_ButDontShipItWithYourGame*"
}


Adding depot1827643.vdf ...

"DepotBuildConfig"
{
  "DepotID" "1827643"
  "FileMapping"
  {
    "LocalPath" "./StandaloneLinux64/*"
    "DepotPath" "."
    "recursive" "1"
  }
  "FileExclusion" "*.pdb"
  "FileExclusion" "**/*_BurstDebugInformation_DoNotShip*"
  "FileExclusion" "**/*_BackUpThisFolder_ButDontShipItWithYourGame*"
}


#################################
#    Generating App Manifest    #
#################################

/home/runner/work/_actions/game-ci/steam-deploy/v1/steam_deploy.sh: 62: [[: not found
/home/runner/work/_actions/game-ci/steam-deploy/v1/steam_deploy.sh: 64: [[: not found
"appbuild"
{
  "appid" "***"
  "desc" "v0.1.14"
  "buildoutput" "BuildOutput"
  "contentroot" "/home/runner/work/DINO-MERCS-unity/DINO-MERCS-unity/build"
  "setlive" "prerelease"

  "depots"
  {
    "1827641" "depot1827641.vdf"
    "1827642" "depot1827642.vdf"
    "1827643" "depot1827643.vdf"
  }
}


#################################
#    Copying SteamGuard Files   #
#################################

Steam is installed in: /home/runner/Steam
Copying /home/runner/Steam/config/config.vdf...
Copying /home/runner/Steam/ssfn...
Finished Copying SteamGuard Files!


#################################
#        Uploading build        #
#################################

Redirecting stderr to '/home/runner/Steam/logs/stderr.txt'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1669935972
-- type 'quit' to exit --
Loading Steam API...OK
Logging in user '***' to Steam Public...src/public/tier1/interface.h (264) : m_pModule
Warning: failed to set thread priority: set failed for priority 8
Warning: support for elevated priorities is most likely unavailable, suppressing future warnings
src/public/tier1/interface.h (264) : m_pModule
CHIDDeviceListSDL(): Couldn't load libSDL2-2.0.so.0, not enumerating devices
OK
Waiting for client config...OK
Waiting for user info...OK
[[20](https://github.com/timothymalcham/DINO-MERCS-unity/actions/runs/3642927755/jobs/6151020002#step:6:22)22-12-07 [21](https://github.com/timothymalcham/DINO-MERCS-unity/actions/runs/3642927755/jobs/6151020002#step:6:23):56:26]: Starting AppID *** build (flags 0x0).
[20[22](https://github.com/timothymalcham/DINO-MERCS-unity/actions/runs/3642927755/jobs/6151020002#step:6:24)-12-07 21:56:26]: Building depot 1827641...

Building file mapping...
Scanning content
..... 46.3MB (12%)
...... 95.2MB (24%)
..... 134.3MB (35%)
..... 181.5MB (47%)
...... 227.6MB (59%)
..... 271.6MB (71%)
...... 319.9MB (83%)
..... 363.0MB (94%)
.
Uploading content...
 3.3MB (17%)
 5.6MB (30%)
. 9.3MB (50%)
 11.7MB (64%)
 14.2MB (77%)
 16.2MB (88%)
. 18.3MB (100%)

[2022-12-07 21:56:41]: Building depot 1827642...

Building file mapping...
Scanning content
..... 48.9MB (12%)
...... 98.7MB (24%)
...... 144.9MB (35%)
..... 187.9MB (46%)
..... [23](https://github.com/timothymalcham/DINO-MERCS-unity/actions/runs/3642927755/jobs/6151020002#step:6:25)2.5MB (57%)
...... 276.9MB (68%)
...... 330.4MB (81%)
..... 374.5MB (92%)
....
Uploading content...
 3.0MB (15%)
 5.5MB (29%)
 7.5MB (40%)
. 9.7MB (51%)
 12.4MB (66%)
 15.5MB (82%)
. 17.7MB (94%)

[2022-12-07 21:56:56]: Building depot 1827643...

Building file mapping...
Scanning content
..... 42.5MB (11%)
..... 85.5MB (22%)
..... 133.7MB (34%)
..... 173.6MB (45%)
...... 218.3MB (56%)
..... 267.6MB (69%)
...... 316.6MB (82%)
..... 359.7MB (93%)
...
Uploading content...
 3.1MB (14%)
 6.2MB (30%)
. 8.8MB (42%)
 12.8MB (61%)
 15.5MB (74%)
. 18.3MB (88%)
 20.7MB (100%)

[2022-12-07 21:57:11]: ERROR! Failed to commit build for AppID *** : Failure


#################################
#             Errors            #
#################################

Listing current folder and rootpath

total 100K
drwxr-xr-x 16 runner docker 4.0K Dec  7 21:56 .
drwxr-xr-x  3 runner docker 4.0K Dec  7 21:53 ..
drwxr-xr-x  8 runner docker 4.0K Dec  7 21:55 .git
-rw-r--r--  1 runner docker   42 Dec  7 21:54 .gitattributes
drwxr-xr-x  3 runner docker 4.0K Dec  7 21:54 .github
-rw-r--r--  1 runner docker 1.1K Dec  7 21:54 .gitignore
drwxr-xr-x  4 runner docker 4.0K Dec  7 21:54 .idea
drwxr-xr-x  2 runner docker 4.0K Dec  7 21:54 .vscode
-rw-r--r--  1 runner docker   99 Dec  7 21:54 .vsconfig
drwxr-xr-x 27 runner docker 4.0K Dec  7 21:55 Assets
drwxr-xr-x  2 runner docker 4.0K Dec  7 21:57 BuildOutput
drwxr-xr-x  2 runner docker 4.0K Dec  7 21:55 DungbeetleServer
drwxr-xr-x  2 runner docker 4.0K Dec  7 21:55 Packages
drwxr-xr-x  2 runner docker 4.0K Dec  7 21:55 ProjectSettings
-rw-r--r--  1 runner docker  173 Dec  7 21:55 README.md
drwxr-xr-x  2 runner docker 4.0K Dec  7 21:55 RewiredBackup
drwxr-xr-x  3 runner docker 4.0K Dec  7 21:55 UserSettings
drwxr-xr-x  5 runner docker 4.0K Dec  7 21:55 build
-rw-r--r--  1 runner docker  304 Dec  7 21:56 depot1827641.vdf
-rw-r--r--  1 runner docker  298 Dec  7 21:56 depot1827642.vdf
-rw-r--r--  1 runner docker  302 Dec  7 21:56 depot1827643.vdf
-rw-r--r--  1 runner docker  304 Dec  7 21:56 manifest.vdf
-rw-r--r--  1 runner docker   83 Dec  7 21:55 omnisharp.json
drwxr-xr-x  3 runner docker 4.0K Dec  7 21:55 steamcmd
drwxr-xr-x  3 runner docker 4.0K Dec  7 21:55 windows_build

total 20K
drwxr-xr-x  5 runner docker 4.0K Dec  7 21:55 .
drwxr-xr-x 16 runner docker 4.0K Dec  7 21:56 ..
drwxr-xr-x  4 runner docker 4.0K Dec  7 21:55 StandaloneLinux64
drwxr-xr-x  3 runner docker 4.0K Dec  7 21:55 StandaloneOSX
drwxr-xr-x  5 runner docker 4.0K Dec  7 21:55 StandaloneWindows64

Listing logs folder:

/home/runner/Steam/logs/:
total 88K
drwxr-xr-x 2 runner docker 4.0K Dec  7 21:57 ./
drwxr-xr-x 7 runner docker 4.0K Dec  7 21:57 ../
-rwxr-xr-x 1 runner docker 1.1K Dec  7 21:56 appinfo_log.txt
-rwxr-xr-x 1 runner docker 9.1K Dec  7 21:57 bootstrap_log.txt
-rwxr-xr-x 1 runner docker 1010 Dec  7 21:56 cloud_log.txt
-rwxr-xr-x 1 runner docker 1.2K Dec  7 21:56 compat_log.txt
-rwxr-xr-x 1 runner docker 1.6K Dec  7 21:56 configstore_log.txt
-rwxr-xr-x 1 runner docker 4.1K Dec  7 21:57 connection_log.txt
-rwxr-xr-x 1 runner docker  251 Dec  7 21:56 content_log.txt
-rwxr-xr-x 1 runner docker   52 Dec  7 21:57 controller.txt
-rwxr-xr-x 1 runner docker  181 Dec  7 21:56 parental_log.txt
-rwxr-xr-x 1 runner docker  156 Dec  7 21:56 shader_log.txt
-rw-r--r-- 1 runner docker  647 Dec  7 21:56 stderr.txt
-rwxr-xr-x 1 runner docker  138 Dec  7 21:56 systemaudiomanager.txt
-rwxr-xr-x 1 runner docker  140 Dec  7 21:56 systemdisplaymanager.txt
-rwxr-xr-x 1 runner docker  136 Dec  7 21:56 systemdockmanager.txt
-rwxr-xr-x 1 runner docker 1.1K Dec  7 21:56 systemmanager.txt
-rwxr-xr-x 1 runner docker  414 Dec  7 21:56 systemperfmanager.txt
-rwxr-xr-x 1 runner docker   98 Dec  7 21:56 workshop_log.txt

Displaying error log

CAppInfoCacheReadFromDiskThread took 0 milliseconds to initialize
src/public/tier1/interface.h (264) : m_pModule
assert_20221207215620_17.dmp[1887]: Uploading dump (out-of-process)
/tmp/dumps/assert_20221207215620_17.dmp
assert_20221207215620_17.dmp[1887]: Finished uploading minidump (out-of-process): success = no
assert_20221207215620_17.dmp[1887]: error: libcurl.so: cannot open shared object file: No such file or directory
assert_20221207215620_17.dmp[1887]: file ''/tmp/dumps/assert_20221207215620_17.dmp'', upload no: ''libcurl.so: cannot open shared object file: No such file or directory''
src/public/tier1/interface.h (264) : m_pModule

Displaying bootstrapper log



[2022-12-07 21:55:54] Startup - updater built Dec 13 2017 05:27:43
[2022-12-07 21:55:54] Checking for update on startup
[2022-12-07 21:55:54] Checking for available update...
[2022-12-07 21:55:55] Download failed: http error 0 (client-download.steampowered.com/client/steam_cmd_linux)
[2022-12-07 21:55:55] Package file steamcmd_public_all.zip.b34b8da97a76159a60dc27b1b6da62b538602518 missing or incorrect size
[2022-12-07 21:55:55] Package file steamcmd_bins_linux.zip.vz.942f2cc97627404c2cc170a46c8752afa92c67db_19153875 missing or incorrect size
[2022-12-07 21:55:55] Package file steamcmd_siteserverui_linux.zip.vz.fc634823dd1831a88610f41bea8167a369bebb12_37365774 missing or incorrect size
[2022-12-07 21:55:55] Package file steamcmd_linux.zip.vz.88980b3581a48c17c9230ec19ff71373ad530ad9_2193605 missing or incorrect size
[2022-12-07 21:55:55] Downloading update (0 of 57385 KB)...
[2022-12-07 21:55:56] Error: Download of package (steamcmd_public_all) failed after 0 bytes (0).
[2022-12-07 21:55:56] Error: Download of package (steamcmd_bins_linux) failed after 0 bytes (0).
[2022-12-07 21:55:56] Error: Download of package (steamcmd_siteserverui_linux) failed after 0 bytes (0).
[2022-12-07 21:55:56] Error: Download of package (steamcmd_linux) failed after 0 bytes (0).
[2022-12-07 21:55:56] Package file steamcmd_public_all.zip.b34b8da97a76159a60dc27b1b6da62b538602518 missing or incorrect size
[2022-12-07 21:55:56] Package file steamcmd_bins_linux.zip.vz.942f2cc97627404c2cc170a46c8752afa92c67db_19153875 missing or incorrect size
[2022-12-07 21:55:56] Package file steamcmd_siteserverui_linux.zip.vz.fc634823dd1831a88610f41bea8167a369bebb12_37365774 missing or incorrect size
[2022-12-07 21:55:56] Package file steamcmd_linux.zip.vz.88980b3581a48c17c9230ec19ff71373ad530ad9_2193605 missing or incorrect size
[2022-12-07 21:55:57] Downloading update (2738 of 57385 KB)...
[2022-12-07 21:55:57] Downloading update (6744 of 57385 KB)...
[2022-12-07 21:55:57] Downloading update (9238 of 57385 KB)...
[2022-12-07 21:55:57] Downloading update (11718 of 57385 KB)...
[2022-12-07 21:55:58] Downloading update (14411 of 57385 KB)...
[2022-12-07 21:55:58] Downloading update (16880 of 57385 KB)...
[2022-12-07 21:55:58] Downloading update (19360 of 57385 KB)...
[2022-12-07 21:55:58] Downloading update (21836 of 57385 KB)...
[2022-12-07 21:55:59] Downloading update ([24](https://github.com/timothymalcham/DINO-MERCS-unity/actions/runs/3642927755/jobs/6151020002#step:6:26)561 of 57385 KB)...
[2022-12-07 21:55:59] Downloading update (27029 of 57385 KB)...
[2022-12-07 21:55:59] Downloading update (29484 of 57385 KB)...
[2022-12-07 21:55:59] Downloading update (31947 of 57385 KB)...
[2022-12-07 21:56:00] Downloading update (34667 of 57385 KB)...
[2022-12-07 21:56:00] Downloading update (37116 of 57385 KB)...
[2022-12-07 21:56:00] Downloading update (39477 of 57385 KB)...
[2022-12-07 21:56:01] Downloading update (41243 of 57385 KB)...
[2022-12-07 21:56:01] Downloading update (42455 of 57385 KB)...
[2022-12-07 21:56:01] Downloading update (43693 of 57385 KB)...
[2022-12-07 21:56:01] Downloading update (45070 of 57385 KB)...
[2022-12-07 21:56:02] Downloading update (46304 of 57385 KB)...
[2022-12-07 21:56:02] Downloading update (47531 of 57385 KB)...
[2022-12-07 21:56:02] Downloading update (48872 of 57385 KB)...
[2022-12-07 21:56:02] Downloading update (50116 of 57385 KB)...
[2022-12-07 21:56:03] Downloading update (51343 of 57385 KB)...
[2022-12-07 21:56:03] Downloading update (5[25](https://github.com/timothymalcham/DINO-MERCS-unity/actions/runs/3642927755/jobs/6151020002#step:6:27)69 of 57385 KB)...
[2022-12-07 21:56:03] Downloading update (53885 of 57385 KB)...
[2022-12-07 21:56:03] Downloading update (55134 of 57385 KB)...
[2022-12-07 21:56:04] Downloading update (56361 of 57385 KB)...
[2022-12-07 21:56:04] Downloading update (57385 of 57385 KB)...
[2022-12-07 21:56:04] Download Complete.
[2022-12-07 21:56:04] uninstalled manifest found in /opt/hostedtoolcache/steamcmd/latest/i386/package/steam_cmd_linux (1).
[2022-12-07 21:56:04] Found pending update
[2022-12-07 21:56:04] Applying update...
[2022-12-07 21:56:04] Extracting package...
[2022-12-07 21:56:10] Installing update...
[2022-12-07 21:56:10] Cleaning up...
[2022-12-07 21:56:10] Update complete, launching...
[2022-12-07 21:56:10] Shutdown


[2022-12-07 21:56:11] Startup - updater built Nov  4 2022 17:42:31
[2022-12-07 21:56:11] Startup - Steam Client launched with: '/opt/hostedtoolcache/steamcmd/latest/i386/linux32/steamcmd' '+quit'
[2022-12-07 21:56:11] Failed to load cached hosts file (File 'update_hosts_cached.vdf' not found), using defaults
[2022-12-07 21:56:11] Using the following download hosts for Public, Realm steamglobal
[2022-12-07 21:56:11] 1. http://media.steampowered.com, /client/, Realm 'steamglobal', weight was 1, source = 'baked in'
[2022-12-07 21:56:11] Checking for update on startup
[2022-12-07 21:56:11] Checking for available updates...
[2022-12-07 21:56:11] Downloading manifest: http://media.steampowered.com/client/steam_cmd_linux
[2022-12-07 21:56:11] Manifest download: send request
[2022-12-07 21:56:11] Manifest download: waiting for download to finish
[2022-12-07 21:56:11] Manifest download: finished
[2022-12-07 21:56:11] Download skipped: /client/steam_cmd_linux version 1669935972, installed version 1669935972, existing pending version 0
[2022-12-07 21:56:11] Nothing to do
[2022-12-07 21:56:11] Verifying installation...
[2022-12-07 21:56:11] Performing checksum verification of executable files
[2022-12-07 21:56:11] Unable to read and verify install manifest /opt/hostedtoolcache/steamcmd/latest/i386/package/steam_cmd_linux.installed
[2022-12-07 21:56:11] Verification complete
[2022-12-07 21:56:11] Downloading update...
[2022-12-07 21:56:11] Checking for available updates...
[2022-12-07 21:56:11] Downloading manifest: http://media.steampowered.com/client/steam_cmd_linux
[2022-12-07 21:56:11] Manifest download: send request
[2022-12-07 21:56:11] Manifest download: waiting for download to finish
[2022-12-07 21:56:11] Manifest download: finished
[2022-12-07 21:56:11] Downloaded new manifest: /client/steam_cmd_linux version 1669935972, installed version 1669935972, existing pending version 0
[2022-12-07 21:56:11] Download complete.
[2022-12-07 21:56:11] uninstalled manifest found in /opt/hostedtoolcache/steamcmd/latest/i386/package/steam_cmd_linux (1).
[2022-12-07 21:56:11] Extracting package...
[2022-12-07 21:56:17] Installing update...
[2022-12-07 21:56:17] Cleaning up...
[2022-12-07 21:56:17] Update complete, launching Steamcmd...
[2022-12-07 21:56:17] Shutdown


[2022-12-07 21:56:17] Startup - updater built Nov  4 2022 17:42:31
[2022-12-07 21:56:17] Startup - Steam Client launched with: '/opt/hostedtoolcache/steamcmd/latest/i386/linux32/steamcmd' '+quit'
[2022-12-07 21:56:17] Failed to load cached hosts file (File 'update_hosts_cached.vdf' not found), using defaults
[2022-12-07 21:56:17] Using the following download hosts for Public, Realm steamglobal
[2022-12-07 21:56:17] 1. http://media.steampowered.com, /client/, Realm 'steamglobal', weight was 1, source = 'baked in'
[2022-12-07 21:56:17] Checking for update on startup
[2022-12-07 21:56:17] Checking for available updates...
[2022-12-07 21:56:17] Downloading manifest: http://media.steampowered.com/client/steam_cmd_linux
[2022-12-07 21:56:17] Manifest download: send request
[2022-12-07 21:56:18] Manifest download: waiting for download to finish
[2022-12-07 21:56:18] Manifest download: finished
[2022-12-07 21:56:18] Download skipped: /client/steam_cmd_linux version 1669935972, installed version 1669935972, existing pending version 0
[2022-12-07 21:56:18] Nothing to do
[2022-12-07 21:56:18] Verifying installation...
[2022-12-07 21:56:18] Performing checksum verification of executable files
[2022-12-07 21:56:18] Verification complete
[2022-12-07 21:56:19] Shutdown


[2022-12-07 21:56:20] Startup - updater built Nov  4 2022 17:42:31
[2022-12-07 21:56:20] Startup - Steam Client launched with: '/opt/hostedtoolcache/steamcmd/latest/i386/linux32/steamcmd' '+login' '***' '***' '' '+run_app_build' '/home/runner/work/DINO-MERCS-unity/DINO-MERCS-unity/manifest.vdf' '+quit'
[2022-12-07 21:56:20] Failed to load cached hosts file (File 'update_hosts_cached.vdf' not found), using defaults
[2022-12-07 21:56:20] Using the following download hosts for Public, Realm steamglobal
[2022-12-07 21:56:20] 1. http://media.steampowered.com, /client/, Realm 'steamglobal', weight was 1, source = 'baked in'
[2022-12-07 21:56:20] Checking for update on startup
[2022-12-07 21:56:20] Checking for available updates...
[2022-12-07 21:56:20] Downloading manifest: http://media.steampowered.com/client/steam_cmd_linux
[2022-12-07 21:56:20] Manifest download: send request
[2022-12-07 21:56:20] Manifest download: waiting for download to finish
[2022-12-07 21:56:20] Manifest download: finished
[2022-12-07 21:56:20] Download skipped: /client/steam_cmd_linux version 1669935972, installed version 1669935972, existing pending version 0
[2022-12-07 21:56:20] Nothing to do
[2022-12-07 21:56:20] Verifying installation...
[2022-12-07 21:56:20] Performing checksum verification of executable files
[2022-12-07 21:56:20] Verification complete
[2022-12-07 21:57:12] Shutdown

#################################
#             Output            #
#################################

BuildOutput:
total 112K
drwxr-xr-x  2 runner docker 4.0K Dec  7 21:57 ./
drwxr-xr-x 16 runner docker 4.0K Dec  7 21:56 ../
-rwxr-xr-x  1 runner docker  297 Dec  7 21:57 app_build_***.log
-rwxr-xr-x  1 runner docker  [27](https://github.com/timothymalcham/DINO-MERCS-unity/actions/runs/3642927755/jobs/6151020002#step:6:29)K Dec  7 21:56 depot_build_1827641.log
-rwxr-xr-x  1 runner docker  165 Dec  7 21:56 depot_build_1827641.vdf
-rwxr-xr-x  1 runner docker  [32](https://github.com/timothymalcham/DINO-MERCS-unity/actions/runs/3642927755/jobs/6151020002#step:6:34)K Dec  7 21:56 depot_build_18276[42](https://github.com/timothymalcham/DINO-MERCS-unity/actions/runs/3642927755/jobs/6151020002#step:6:44).log
-rwxr-xr-x  1 runner docker  165 Dec  7 21:56 depot_build_1827642.vdf
-rwxr-xr-x  1 runner docker  27K Dec  7 21:57 depot_build_18276[43](https://github.com/timothymalcham/DINO-MERCS-unity/actions/runs/3642927755/jobs/6151020002#step:6:45).log
-rwxr-xr-x  1 runner docker  165 Dec  7 21:[57](https://github.com/timothymalcham/DINO-MERCS-unity/actions/runs/3642927755/jobs/6151020002#step:6:59) depot_build_1827[64](https://github.com/timothymalcham/DINO-MERCS-unity/actions/runs/3642927755/jobs/6151020002#step:6:66)3.vdf
Error: Process completed with exit code 1.

How to reproduce

Workflow:
name: ๐Ÿš€ Build Game & Deploy to Steam ๐Ÿš€

on:
    push:
        tags:
            - 'v*'

jobs:
  buildForWindowsMacAndLinux:
    name: Build for ${{ matrix.targetPlatform }}
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        targetPlatform:
          - StandaloneWindows64 # Build a Windows 64-bit standalone.
          - StandaloneLinux64 # Build a Linux 64-bit standalone.
          - StandaloneOSX # Build a OSX intel 64-bit standalone.
    outputs:
      buildVersion: ${{ steps.build.outputs.buildVersion }}
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0
          lfs: true

      - uses: actions/cache@v2
        with:
          path: Library
          key:
            Library-${{ matrix.targetPlatform }}-${{ hashFiles('Assets/**', 'Packages/**',
            'ProjectSettings/**') }}
          restore-keys: |
            Library-${{ matrix.targetPlatform }}-
            Library-

      - uses: game-ci/unity-builder@v2
        id: build
        env:
          UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
        with:
          targetPlatform: ${{ matrix.targetPlatform }}
          versioning: Semantic
          
      - uses: actions/upload-artifact@v2
        with:
          name: Build-${{ matrix.targetPlatform }}
          path: build/${{ matrix.targetPlatform }}

  deployToSteam:
    needs: [buildForWindowsMacAndLinux]
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repository
        uses: actions/checkout@v2
        with:
          fetch-depth: 0

      - name: Download StandaloneWindows64 Artifact
        uses: actions/download-artifact@v2
        with:
          name: Build-StandaloneWindows64
          path: build/StandaloneWindows64

      - name: Download StandaloneLinux64 Artifact
        uses: actions/download-artifact@v2
        with:
          name: Build-StandaloneLinux64
          path: build/StandaloneLinux64

      - name: Download StandaloneOSX Artifact
        uses: actions/download-artifact@v2
        with:
          name: Build-StandaloneOSX
          path: build/StandaloneOSX

      - uses: game-ci/steam-deploy@v1
        with:
          username: ${{ secrets.STEAM_USERNAME }}
          password: ${{ secrets.STEAM_PASSWORD }}
          configVdf: ${{ secrets.STEAM_CONFIG_VDF}}
          ssfnFileName: ${{ secrets.STEAM_SSFN_FILE_NAME }}
          ssfnFileContents: ${{ secrets.STEAM_SSFN_FILE_CONTENTS }}
          appId: ${{ secrets.STEAM_APP_ID }}
          buildDescription: v${{ needs.buildForWindowsMacAndLinux.outputs.buildVersion }}
          rootPath: build
          depot1Path: StandaloneWindows64
          depot2Path: StandaloneOSX
          depot3Path: StandaloneLinux64
          releaseBranch: prerelease

Expected behavior

I would expect that if the build makes it to steam, then this job should not fail.

Unable to deploy for problem with root path

Hello,

hope to find you well.

I am getting the following error when trying to use the full pipeline, is it possible that maybe the root path is relative and should be absolute?

Loading Steam API...OK.
Logging in user '***' to Steam Public ...
Logged in OK
Waiting for user info...OK
[2021-04-22 14:57:49]: Starting AppID XXXXX build (flags 0x0).
[2021-04-22 14:57:49]: Building depot XXXXX ...

Error! Invalid content root for depot XXXXX: /github/workspace/builds

[2021-04-22 14:57:49]: ERROR! Build for depot XXXXX failed : Failure

For the following pipeline:

name: Test&Build

on: workflow_dispatch

jobs:
  buildAndTestForSomePlatforms:
    name: Build for ${{ matrix.targetPlatform }}
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        unityVersion:
          - 2020.3.4f1
        targetPlatform:
           - StandaloneOSX # Build a macOS standalone (Intel 64-bit).
          - StandaloneWindows64 # Build a Windows 64-bit standalone.
          - StandaloneLinux64 # Build a Linux 64-bit standalone.
          - StandaloneWindows # Build a Windows 32-bit standalone.
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0
          lfs: true
      - uses: actions/cache@v2
        with:
          path: ${{ matrix.projectPath }}/Library
          key: Library-${{ matrix.projectPath }}-${{ matrix.targetPlatform }}
          restore-keys: |
            Library-${{ matrix.projectPath }}-
            Library-
      - uses: game-ci/unity-test-runner@v2
        id: testRunner
        env:
          UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
        with:
          projectPath: ${{ matrix.projectPath }}
          unityVersion: ${{ matrix.unityVersion }}
          githubToken: ${{ secrets.GITHUB_TOKEN }}
      - uses: actions/upload-artifact@v2
        if: always()
        with:
          name: Test results (all modes)
          path: ${{ steps.testRunner.outputs.artifactsPath }}
      - uses: game-ci/unity-builder@v2
        env:
          UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
        with:
          projectPath: ${{ matrix.projectPath }}
          unityVersion: ${{ matrix.unityVersion }}
          targetPlatform: ${{ matrix.targetPlatform }}
          customParameters: '-myParameter myValue -myBoolean -ThirdParameter andItsValue'
      - uses: actions/upload-artifact@v2
        with:
          name: Build
          path: builds
      - uses: game-ci/[email protected]
        with:
          username: ${{ secrets.STEAM_USERNAME }}
          password: ${{ secrets.STEAM_PASSWORD }}
          mfaCode:  ${{ secrets.STEAM_MFA_CODE }}
          appId: XXXXX
          buildDescription: v0.0.1
          rootPath: builds
          depot1Path: StandaloneWindows
          releaseBranch: test
          localContentServer: LocalContentServer

Thanks!

ssfn files for Mac and Linux

Bug description
I'm on Mac OS 12.1 (Monterey) and just downloaded the Steamworks SDK.
First of all, the config/config.vdf according to the docs wasn't created. But another file "update_hosts_cached.vdf" was created, which seems to be the correct file.

However, no files starting with ssfn was created, and no hidden files. So I can't proceed in setting up the secrets STEAM_SSFN_FILE_NAME and STEAM_SSFN_FILE_CONTENTS needed for the deployment.

First time i ran ./steamcmd.sh i got a lot of errors like this, but I could login, enter the 2FA code and the update_hosts_cached.vdf was created:

src/common/enum_names.cpp (2271) : Assertion Failed: Missing String for EOSType (-76)
src/common/enum_names.cpp (2271) : Assertion Failed: Missing String for EOSType (-77)
src/common/enum_names.cpp (2271) : Assertion Failed: Missing String for EOSType (-77)
src/common/enum_names.cpp (2271) : Assertion Failed: Missing String for EOSType (-78)
src/common/enum_names.cpp (2271) : Assertion Failed: Missing String for EOSType (-78)

How to reproduce

Run this command on mac:
cd /tools/ContentBuilder/builder_osx
chmod 755 steamcmd.sh
./steamcmd.sh +login +quit

Expected behavior
Two files named ssfn where one hidden, is generated.

"Find the Hidden One" links to windows but build requires linux

I'm setting up this action and trying to setup env variables from an ubuntu machine running steamcmd. I figured this is best since this action requires ubuntu

However the readme directs me to a SECOND ssfn file that is hidden but linux does not appear to have any, hidden or otherwise. Just the one.

I'd like to fix this and then update the documentation, but could someone point me in the right direction?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.