name: Deploy to Steam

on:
  workflow_dispatch:
    inputs:
      commit_hash:
        description: Commit hash
        type: string
        required: true
      version:
        description: Version
        type: string
        required: true
      release_channel:
        description: Release channel
        type: string
        required: true
        default: beta

jobs:
  deploy-to-steam:
    name: Deploy to Steam
    runs-on: ubuntu-22.04
    steps:
      - name: Clone DFHack
        uses: actions/checkout@v3
        with:
          submodules: true
          fetch-depth: 0
          ref: ${{ github.event.inputs.commit_hash }}
      - name: Fetch ccache
        uses: actions/cache@v3
        with:
          path: build/win64-cross/ccache
          key: ccache-win64-cross-msvc-${{ github.event.inputs.commit_hash }}
          restore-keys: |
            ccache-win64-cross-msvc-develop-${{ github.event.inputs.commit_hash }}
            ccache-win64-cross-msvc
      - name: Cross-compile win64 artifacts
        env:
          CMAKE_EXTRA_ARGS: '-DBUILD_STONESENSE:BOOL=1'
        run: |
          cd build
          bash -x build-win64-from-linux.sh
      - name: Steam deploy
        uses: game-ci/steam-deploy@v2
        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: 2346660
          buildDescription: ${{ github.event.inputs.version }}
          rootPath: build
          depot1Path: win64-cross/output
          releaseBranch: ${{ github.event.inputs.release_channel }}