Skip to content

Deploy to Steam (Windows & macOS) #41

Deploy to Steam (Windows & macOS)

Deploy to Steam (Windows & macOS) #41

Workflow file for this run

name: Deploy to Steam (Windows & macOS)
on:
workflow_dispatch:
env:
GODOT_VERSION: ${{ vars.GODOT_VERSION }}
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout source code
uses: actions/checkout@v4
with:
lfs: true
- name: Godot Export
id: export
uses: firebelley/godot-export@v7.0.0
with:
relative_project_path: ./project/
# We tell Firebelley to put everything in a folder named 'out'
build_directory: out
# Steam needs raw files, NOT a zip of everything
archive_output: false
godot_executable_download_url: https://github.com/godotengine/godot/releases/download/${{ env.GODOT_VERSION }}-stable/Godot_v${{ env.GODOT_VERSION }}-stable_linux.x86_64.zip
godot_export_templates_download_url: https://github.com/godotengine/godot/releases/download/${{ env.GODOT_VERSION }}-stable/Godot_v${{ env.GODOT_VERSION }}-stable_export_templates.tpz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Debug - Find the actual build folder
run: |
echo "Listing all files in the workspace to find the .exe:"
find . -maxdepth 4 -name "*.exe"
- name: Generate Steam TOTP
id: steam_totp
uses: CyberAndrii/steam-totp@v1
with:
shared_secret: ${{ secrets.STEAM_TOTP }}
- name: Upload to Steam
uses: game-ci/steam-deploy@v3
with:
username: ${{ vars.STEAM_USERNAME }}
password: ${{ secrets.STEAM_PASSWORD }}
totp: ${{ steps.steam_totp.outputs.code }}
appId: ${{ vars.STEAM_APP_ID }}
# THIS IS THE KEY: Point directly to the action's internal build folder
rootPath: /home/runner/.local/share/godot/builds
releaseBranch: "beta"
buildDescription: "Build ${{ github.run_number }}"
# The action creates subfolders based on the Preset Name
depot1Path: "Windows Desktop"
depot2Path: "macOS"
args: |
+set_depot_build_path ${{ vars.STEAM_DEPOT_WINDOWS }} "Windows Desktop"
+set_depot_build_path ${{ vars.STEAM_DEPOT_MACOS }} "macOS"