game-ci / steam-deploy

Github Action to deploy a game to Steam
MIT License
227 stars 63 forks source link

Build for depot XXXX failed: Failure #14

Closed AlexStormwood closed 2 years ago

AlexStormwood commented 3 years ago

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/steam-deploy@v0.1
        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.

davidmfinol commented 2 years ago

Closing this issue, as it was created pre-v1. Please try with v1, and re-open if necessary.