#
# .gitea/workflows/gitea-release.yaml
#
#

name: "Publish"
on: 
  push:
    branches:
      - '*.*'

env:
  GODOT_VERSION: 4.6
  PROJECT_PATH: .
  PROJECT_NAME: MusicPlayer
  GAME_VERSION: ${{gitea.ref_name}}
  EXPORT_NAME: MusicPlayer_${{gitea.ref_name}}

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repository
        uses: actions/checkout@v4
      - name: Download Godot
        run: |
          #echo "https://github.com/godotengine/godot-builds/releases/download/$GODOT_VERSION-stable/Godot_v$GODOT_VERSION-stable_linux.x86_64.zip"
          curl -L -o godot.zip https://github.com/godotengine/godot-builds/releases/download/$GODOT_VERSION-stable/Godot_v$GODOT_VERSION-stable_linux.x86_64.zip
          unzip godot.zip
          mv Godot_v$GODOT_VERSION-stable_linux.x86_64 godot
          chmod +x godot

      - name: Download Godot Export Templates
        run: |
          #echo "https://github.com/godotengine/godot-builds/releases/download/$GODOT_VERSION-stable/Godot_v$GODOT_VERSION-stable_export_templates.tpz"
          curl -L -o export_templates.zip https://github.com/godotengine/godot-builds/releases/download/$GODOT_VERSION-stable/Godot_v$GODOT_VERSION-stable_export_templates.tpz
          unzip export_templates.zip

      - name: Install Export Templates
        run: |
          mkdir -p ~/.local/share/godot/export_templates/$GODOT_VERSION.stable
          mv ./templates/* ~/.local/share/godot/export_templates/$GODOT_VERSION.stable

      - name: Create build folder
        run: |
          mkdir -v -p build

      - name: Windows Build
        run: |
          cd $PROJECT_PATH
          ./godot --headless --verbose --export-release "Windows Desktop" "build/$EXPORT_NAME.exe"

      - name: Linux Build
        run: |
          cd $PROJECT_PATH
          ./godot --headless --verbose --export-release "Linux" "build/$EXPORT_NAME.x86_64"

      - name: MacOS Build
        run: |
          cd $PROJECT_PATH
          ./godot --headless --verbose --export-release "macOS" "build/$EXPORT_NAME.zip"

      - name: Upload Artifact Windows
        run: |
          #ls -la build
          curl --user ${{ github.repository_owner }}:${{ secrets.TOKEN }} \
                --upload-file "build/$EXPORT_NAME.exe" \
                https://gitea.sanplex.tech/api/packages/sansan/generic/$PROJECT_NAME/$GAME_VERSION/$EXPORT_NAME.exe

      - name: Upload Artifact Linux
        run: |
          ls -la build
          curl --user ${{ github.repository_owner }}:${{ secrets.TOKEN }} \
                --upload-file "build/$EXPORT_NAME.x86_64" \
                https://gitea.sanplex.tech/api/packages/sansan/generic/$PROJECT_NAME/$GAME_VERSION/$EXPORT_NAME.x86_64

      - name: Upload Artifact MacOS
        run: |
          ls -la build
          curl --user ${{ github.repository_owner }}:${{ secrets.TOKEN }} \
                --upload-file "build/$EXPORT_NAME.zip" \
                https://gitea.sanplex.tech/api/packages/sansan/generic/$PROJECT_NAME/$GAME_VERSION/$EXPORT_NAME.zip

      - name: Create release  
        uses: akkuman/gitea-release-action@v1
        env:
          NODE_OPTIONS: '--experimental-fetch' # if nodejs < 18
        with:
          files: |-
            build/**
